使用“node”运行时,Express 端口未定义。

jm1*_*456 1 javascript node.js npm express

我一直在关注这里的教程,直到我必须运行服务器的部分为止都很好:https : //www.digitalocean.com/community/tutorials/setting-up-a-node-project-with-打字稿

如果我尝试运行下面的代码,我会得到 server is listening on undefined

const app = express();
const port = 8080;

app.get("/", (req, res) => {
    res.send("Hello");
})

app.listen((port, err) => {
    if (err) {
        return console.error(err);
    }
    return console.log(`server is listening on ${port}`);
});
Run Code Online (Sandbox Code Playgroud)

我什至尝试使用预先设置端口 app.set('port', port);

const app = express();
const port = 8080;

app.set('port', port);

app.get("/", (req, res) => {
    res.send("Hello");
})

app.listen((port, err) => {
    if (err) {
        return console.error(err);
    }
    return console.log(`server is listening on ${port}`);
});
Run Code Online (Sandbox Code Playgroud)

但同样的事情也会发生。

Jac*_* Yu 7

app.listen接受两个参数,第一个是端口,第二个是回调。将其更改为以下代码。

app.listen(port, (err) => {
    if (err) {
        return console.error(err);
    }
    return console.log(`server is listening on ${port}`);
});
Run Code Online (Sandbox Code Playgroud)

这是教程中的一个例子。他忽略了()in 函数 from (err) => {}to err => {},两者都有效。

app.listen(port, err => {
  if (err) {
    return console.error(err);
  }
  return console.log(`server is listening on ${port}`);
});
Run Code Online (Sandbox Code Playgroud)