控制器的Node Rest API问题

时间:2019-04-17 12:23:56

标签: node.js rest postman

我像往常一样开发了节点rest api,但是这次它在controller.js文件中显示了一些无效的错误。不需要猫鼬。当我用邮递员访问API时,它给出的错误为:

{ "error": { "message": "Tweets is not a constructor" } }

我什至更新了我的软件包,但似乎没有任何效果。这是我的 tweets.js控制器的代码段

const mongoose = require('mongoose');
const Tweets = require('../models/tweets');

exports.get_all_tweets = (req, res, next) => {
    Tweets.find()
    .exec()
    .then(docs => {
        console.log(docs);
        res.status(200).json(docs);
    })       
      .catch(err => {
        console.log(err);
        res.status(500).json({
          error: err
        });
      });
}

exports.create_tweets = (req, res, next) => {
    const tweetbody = req.body;
    tweetbody._id = mongoose.Types.ObjectId();
    const tweet = new Tweets(tweetbody);
    tweet
    .save()
    .then(docs => {
        console.log(docs, 'Tweets');
        res.status(200).json(docs);
    })
    .catch(err => {
        console.log(err, 'error found');
        res.status(500).json({
          error:err
        });
    });

第一组猫鼬显示为空白,如屏幕截图所示: mongoose

tweets.js的模型:

const mongoose = require('mongoose');

const tweetSchema = mongoose.Schema({
    _id: mongoose.Schema.Types.ObjectId,
    time: { type: String},
    count: { type: Number}
});

module.export = mongoose.model('Tweets', tweetSchema);

3 个答案:

答案 0 :(得分:0)

请在架构初始化之前检查所有路径并添加新关键字

tweets.js的模型:

const tweetSchema = new mongoose.Schema({

答案 1 :(得分:0)

使用async/await

尝试一下
exports.get_all_tweets = async (req, res, next) => {
    const result = await Tweets.find()
    res.status(200).json(result);
}

答案 2 :(得分:0)

module.exports的末尾带有's'