1
我是Node.js和Express的新手。我想創建一個供應商並將其與City對象關聯。node.js回調,嵌套函數,如何重構
//城市模型 var mongoose = require('mongoose');
var CitySchema = new mongoose.Schema({
name: String
});
//供應商型號
var mongoose = require('mongoose');
var VendorSchema = new mongoose.Schema({
name: String,
city: { type: mongoose.Schema.Types.ObjectId, ref: 'City' }
});
mongoose.model('Vendor', VendorSchema);
//routes/index.js
vendor.save(功能)是內部City.findOne(功能),它看起來有點難看。我希望代碼遵循單一責任規則,或者讓代碼更乾淨。編寫這些嵌套回調函數的最佳做法是什麼?
非常感謝。
mongoose.model('City', CitySchema);
router.post('/vendor', function(req, res, next){
var vendor = new Vendor();
vendor.name = req.body.name;
City.findOne({name:req.body.city}, function(err, city) {
if (err) return next(err);
vendor.city = city;
vendor.save(function(err, vendor) {
if (err) { return next(err); }
res.json(vendor);
});
});
});