Javascript TypeError:todo不是一个函数
我正试图使用以下url localhost:3000/todos从邮递员处发出post请求。但是,在发出此请求时,状态显示为500 internal server error(内部服务器错误)。在正文中,我还收到一个错误,其中指出todo不是一个函数。 这里是server.jsJavascript TypeError:todo不是一个函数,javascript,node.js,mongodb,postman,Javascript,Node.js,Mongodb,Postman,我正试图使用以下url localhost:3000/todos从邮递员处发出post请求。但是,在发出此请求时,状态显示为500 internal server error(内部服务器错误)。在正文中,我还收到一个错误,其中指出todo不是一个函数。 这里是server.js var express=require('express'); var bodyParser=require('body-parser'); var mongoose=require('./db/mongoose');
var express=require('express');
var bodyParser=require('body-parser');
var mongoose=require('./db/mongoose');
var Todo=require('./models/todo');
var User=require('./models/user');
var app = express();
app.use(bodyParser.json());
app.post('/todos', (req, res) => {
var todo = new Todo({
text: req.body.text
});
todo.save().then((doc) => {
res.send(doc);
}, (e) => {
res.status(400).send(e);
});
});
app.listen(3000, () => {
console.log('Started on port 3000');
});
这里是todo.js
var mongoose=require('mongoose');
var Todo = mongoose.model('Todo', {
text: {
type: String,
required:true,
minlength:1,
trim:true
},
completed: {
type: Boolean,
default:false
},
completedAt: {
type: Number,
default:null
}
});
module.exports={Todo};
您正在导出包含Todo对象的对象,因此您可以通过以下方式访问该对象:
var todo=new todo.todo({…
(在server.js
中)
或者,在Todos.js
中:
module.exports=Todo;
而不是module.exports={Todo};
,您将server.js保持原样。您正在导出一个包含Todo对象的对象,因此您可以通过以下方式访问该对象:
var todo=new todo.todo({…
(在server.js
中)
或者,在Todos.js
中:
module.exports=Todo;
而不是module.exports={Todo};
,然后您将server.js
保持原样。要实现这一点,您有两个选择:module.exports=Todo;
另一个是进行以下更改var-Todo=require('./models/Todo')).Todo;
因为您在导出module.exports=Todo;
时将Todo导出为对象的键值,所以您可以指定需要更改的内容和位置作为该更改的内容。@Alex它工作得很好。要实现此功能,您有两种选择:module.exports=Todo;
另一种是进行以下更改var Todo=require('./models/todo').todo;
因为您在导出module.exports=todo;
时将todo导出为对象的键值,您可以指定需要更改的内容和位置。@Alex它工作正常。