0
私はNodeJS + Express + MondoDBで最初のアプリケーションを開発していますが、いくつか問題があります。基本的には、各ユーザーがジョブのリストを持っているNodeJSでポピュレートモデルを保存する
user.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);
:
は、まず私は2つのモデルがあります。だから私は仕事をするたびに、私はユーザーを検索し、彼のリストにこの仕事を追加します。 simplycityのために私はjobs.jsいわゆる「コントローラ」を作成しました:
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
ありがとうございます。
のように、すべてのモデルをエクスポートしてください。今それは働いている。ありがとう! – Sergiodiaz53