我不明白为什么我看到这个错误。
我的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一起写文件夹导出。module = app;然后创建server.js
文件
const app = require('./app');
const port = 3000;
app.listen(port, () => {
console.log(`App running on port ${port}`);
});
这不起作用,我得到
TypeError:app.listen不是函数
3条答案
按热度按时间u3r8eeie1#
正如@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;
qhhrdooz2#
为此,您必须导出模块,以便添加:
在
app.js
文件中。klh5stk13#
我遇到了同样的问题,我不得不在require语句中通过解构来解决它。
当然,在
app.js
的底部:然后在
server.js
的顶部:当我试图像这样要求它时,我得到了相同的
TypeError
: