TypeError:todo不是函数

时间:2018-03-14 16:19:57

标签: javascript node.js mongodb postman

我正在尝试使用以下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};

1 个答案:

答案 0 :(得分:4)

您正在导出包含Todo对象的对象,因此您可以通过以下方式访问该对象:

libtcmallocvar todo = new Todo.Todo({ ...

或,在server.js中:

Todos.js代替module.exports=Todo;,您按原样离开module.exports={Todo};