最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

如何创建nodejs无模式结构?

运维笔记admin9浏览0评论

如何创建nodejs无模式结构?

如何创建nodejs无模式结构?

我正在开发nodejs后端,我想创建模式较少的模型结构。我按照以下方式创建它。

questionnaireModel.js

var mongoose = require('mongoose');
var schema = mongoose.schema;
var bcrypt  = require ('bcrypt-nodejs');
var QuestionnaireSchema = mongoose.Schema({},{strict:false});

module.exports = mongoose.model('questionnaire', QuestionnaireSchema);

这样对吗?

我的控制器在这里:

questionnaireController.js

var mongoose = require('mongoose');
var config = require('../config');
var async = require('async');
var moment = require('moment');
var questionnaire = mongoose.model("questionnaire");

exports.createQuestionnaire = function (req, res) {
var receivedValues = req.body;
    var questionnaireData = new questionnaire();
    questionnaireData.categoryid = req.body.categoryid;
    questionnaireData.questiontype = req.body.questiontype;
    questionnaireData.isrequired = req.body.isrequired;
    questionnaireData.isshowvalue = req.body.isshowvalue;
    questionnaireData.options = req.body.options;
    questionnaireData.createdDate = moment().format();
    questionnaireData.save(function(err,resp){
            res.json({
              "code": 200,
              "status": "success",
            });
    });
}

但数据未插入集合中。

我使用Postman通过以下数据:

{
 "categoryid":"123",
 "questiontype":"checkbox",
 "isrequired":true,
 "isshowvalue":true,
 "options":{
    "op1":"123",
    "op2":"1234"
 }
}

你能告诉我这里有什么问题吗?

提前致谢。

回答如下:

我试过下面的代码和它的工作。

问卷的模式

var mongoose = require('mongoose');
var Schema       = mongoose.Schema;

// var bcrypt  = require ('bcrypt-nodejs');


var QuestionnaireSchema = new Schema({

}, { strict: false });

module.exports = mongoose.model('questionnaire', QuestionnaireSchema);

路线:

var express = require('express');
var router = express.Router();

var mongoose = require('mongoose');
var config = require('../config/Database');


mongoose.connect(config.mongo_local,function(err){
    if(err){
        console.log("$$Database is not connected");
    }else{
        console.log("##Database is connected");
    }
});

// var async = require('async');
var moment = require('moment');
var questionnaire = require("../models/questionnaire");

router.post('/createQuestionnaire', function(req, res){
    console.log(req.body);
    var obj= {};
    obj = req.body;

    new questionnaire(obj).save(function(err,resp){
        if(err){
            console.log(err);
            res.json(err);
        }else{
            console.log("Data is created");
            res.json({
              "code": 200,
              "status": "success",
            });
        }
    })

});

在执行{strict:false}时,需要在构造函数级别将值传递给模型,或者如果要创建对象然后分配值,则必须使用set()

var questionnaireData = new questionnaire();
questionnaireData.set('categoryid', req.body.categoryid);

希望它会对你有所帮助。

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论