类型错误:todo 不是函数
Posted
技术标签:
【中文标题】类型错误:todo 不是函数【英文标题】:TypeError: todo is not a function 【发布时间】:2018-08-23 06:48:32 【问题描述】:我正在尝试使用以下 url localhost:3000/todos 向邮递员发出发布请求。但是,在发出此请求时,状态显示为 500 内部服务器错误。我在正文中也收到错误消息todo 不是一个函数。 这里是 server.js
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;
【问题讨论】:
为此,您有两种选择:module.exports=Todo;
另一种是进行以下更改var Todo=require('./models/todo').Todo;
,因为您在导出时将 Todo 作为对象的键值导出
module.exports=Todo;
嘿,你能指定 chnage 作为我需要更改的内容和位置吗?
@Alex 工作正常。
【参考方案1】:
您正在导出一个包含您的 Todo 对象的对象,因此您可以通过以下方式访问它:
var todo = new Todo.Todo( ...
(在server.js
)
或者,Todos.js
:
module.exports=Todo;
而不是 module.exports=Todo;
,然后您将 server.js
保持原样。
【讨论】:
以上是关于类型错误:todo 不是函数的主要内容,如果未能解决你的问题,请参考以下文章
this.state.todos.map 不是函数,React.js
错误类型错误:_co.deleteConsulta 不是函数