这里有一个关于Express.js.的问题
我注意到下面的代码不起作用:
require('dotenv').config();
const http = require('http');
const app = require('./app');
app.set('port', process.env.PORT);
const server = http.createServer(app);
server.listen();
为了使它发挥作用,我必须在server.listen((中添加一个参数:
server.listen(process.env.PORT);
但我不明白为什么,因为我已经声明了服务器使用应用程序,而应用程序是用一个设置为process.env.port的端口声明的。那么,为什么我必须再说一遍呢?我认为server.listen((应该足够了。
我是一个新手,我想有一些显而易见的东西,但现在,我不明白。
以下是app.js:的内容
const express = require('express');
const app = express();
app.use('/', (_,res) => {
const message = {
message: "Hello World!"
};
res.status(200).json(message);})
module.exports = app;
答案是:
在问题中提到的代码中,服务器没有设置两次。
混淆来自app.set((,它不是server.listen((.的等价物
App.set((定义了一个变量,我们可以用App.get((.调用它