我在运行node express服务器时遇到错误:
- 索引. js.**
const
bodyParser = require('body-parser'),
express = require('express'),
path = require('path');
const config = require('./config');
const app = express();
const mongoose = require('mongoose');
const apiTodos = require('./api/todos');
// connection mongodb via mongoose;
mongoose.connect('mongodb://localhost:27017/todoslist', { useNewUrlParser: true });
app.use(bodyParser.json());
app.use('/api/todos', apiTodos);
app.use('/', express.static(path.resolve(app.get('appPath'))));
app.listen(config.port, (err) => {
if (err) { return console.log('Error:', err); }
console.log('Listening on port %d', config.port);
});
module.exports = app;
- ./api/todos(索引. js中的点)*
const express = require('express');
const Router = express.Router();
const controller = require('./todos.controller');
let router = new Router();
router.get('/check', controller.check);
module.exports = router;
- 全部内容.控制器**
const tasklist = require('./todos.model');
let check = new Promise((resolve, reject) => {
setTimeout(function() {
(req, res) => {
tasklist.find({})
.then(data => {
resolve(console.log(data));
// resolve(res.status(200).json({ doc: data }));
})
.then(err => {
console.log(err);
// res.status(503).json({ msg: err });
});
}
}, 300);
});
module.exports = check;
- 错误消息:**
节点模块\表达式\库\路由器\索引. js:138调试("分派% s % s",请求方法,请求URL);^
TypeError: Cannot read property 'method' of undefined
我不知道我做错了什么,我该怎么解决这个问题?
4条答案
按热度按时间iyr7buue1#
你在命名文件的方式上有几个错误。我看到你把你的模型命名为todo.model,把你的控制器命名为todo.controller。这些是文件扩展名吗?如果是,它们不可能是。请把你的文件重命名为todo.js。你可以把它们放在单独的文件夹中,这样你就可以把你的模型和控制器分开。
您可以将它们引用为
kyxcudwk2#
todos. conbrowler检查方法没有一个请求和响应对象作为参数,也没有必要使用超时或承诺,您可以将其更改为:
bxgwgixi3#
6个小时后,我得到了问题;
问题是i模块如何输出“控制器”;
待办事项控制器
错误的方式:
和正确的方式:
我应该有json类型的导出模块,并承诺是不是一个问题,这是你的选择瞧
感谢所有的帮助!!!
1u4esq0p4#
我也遇到过同样的问题,是因为我把文件分割成了单独的模块,并且漏掉了这一行
在via“require”包含文件中(在包含的基本文件中,您也有这个)。
也许会有帮助。