TypeError:app.listen不是函数NODEJS



我不明白为什么会看到这个错误。

我的app.js文件

const express = require("express");
const morgan = require('morgan');
const app = express();
const tourRouter = require('./routers/tourRouter');
const userRouter = require('./routers/userRouter');
app.use(express.json());
app.use(morgan('dev'));
app.use((req,res,next)=>{
req.RequestTime = new Date().toISOString();
next();
});
app.use('/api/v1/tours',tourRouter);
app.use('/api/v1/users',userRouter);
const port = 3000;
app.listen(port, () => {
console.log(`App running on port ${port}`);
});

这运行起来没有问题,但当我切断时

const port = 3000;
app.listen(port, () => {
console.log(`App running on port ${port}`);
});

这部分我和app.js编写文件夹exports.module=app;我创建了server.js文件

const app = require('./app');
const port = 3000;
app.listen(port, () => {
console.log(`App running on port ${port}`);
});

这不起作用,我得到

类型错误:app.listen不是函数

正如@Dickens A S所评论的,您需要将object: app: instance of express分配给file: "app.js"中的module.exports

读取文档:Node.js:module.exports

许多人希望他们的模块是某个类的实例。为此,请将所需的导出对象分配给module.exports.

将此添加到file:app.js:的

module.exports = app;

要使其工作,您必须导出模块,因此添加:

module.exports = app

在您的app.js文件中。

最新更新