gpt4 book ai didi

javascript - 使用 NodeJS 保存填充模型

转载 作者:行者123 更新时间:2023-12-02 14:06:31 25 4
gpt4 key购买 nike

我正在使用 NodeJS + Express + MondoDB 开发我的第一个应用程序,但遇到了一些问题。

首先我有两个模型:

用户.js

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

var user_schema = new Schema({
_id : Number,
userName : String,
jobList : [{ type: Schema.Types.ObjectId, ref: 'Job' }]
});

var User = mongoose.model('User', user_schema);

job.js

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

var job_schema = new Schema({
user : { type: Number, ref: 'User' },
jobName : String,
outputFile : String,
status : String
});

var Job = mongoose.model('Job', job_schema);

基本上,每个用户都有一个工作列表。因此,每次运行作业时,我都会搜索用户并将该作业添加到他的列表中。对于 simplecity,我创建了一个名为 jobs.js 的“ Controller ”:

var User  = require('../models/user.js');
var Job = require('../models/job.js');

exports.addJob = function(req, res) {

var user = new User({
_id : 0,
userName : 'guest'
});

user.save(function (err) {
if (err) return handleError(err);
});

var job1 = new Job ({
username : user._id,
jobName : 'jobname',
outputFile : 'myfile',
status : 'finished'
});

job1.save(function(err, job) {
if(err) return res.status(500).send( err.message);
res.send(JSON.stringify(job));
});

}

最后是我的“server.js”

var express    = require('express');
var app = express();
var bodyParser = require('body-parser');
var mongoose = require('mongoose');

var jobsCtrl = require('./controllers/jobs');

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

var port = process.env.PORT || 8081;

var jobs = express.Router();
jobs.route('/addJob')
.post(jobsCtrl.addJob);

app.use(jobs);

mongoose.connect('mongodb://localhost/morca', function(err, res) {
if(err) {
console.log('ERROR: connecting to Database. ' + err);
} else {
console.log('Connected to Database');
}
});

app.listen(port);
console.log('Server listening at: ' + port);

嗯,当我在方法exports.addJob 中向/addJob 发送POST 时,收到错误“对象不是函数”。我一直在寻找“存储填充模型”,但它似乎是正确的:http://mongoosejs.com/docs/populate.html

提前致谢。

最佳答案

您似乎没有导出您的模型。

在这里,您只需将模型分配到变量中。

var Job = mongoose.model('Job', job_schema);

尝试像这样导出所有模型

module.exports= mongoose.model('Job', job_schema);
module.exports= mongoose.model('User', user_schema);

关于javascript - 使用 NodeJS 保存填充模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40019389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com