我在nodeJS中遇到了中间件方法的问题。 在这个方法中,我正在寻找一个具有最高自定义ID属性的专辑,在排序并获得最高值之后,我做了一个增量++。
一切正常,但是当DB中没有记录时,问题就会进入阶段。
我想要做的是在没有记录时制作默认的album.id = 1
。
我的代码:
// ID MIDDLEWARE
newID.use(function (req, res, next) {
var _newAlbumID;
Album.findOne().sort('-id').exec(function (err, album, newID) {
if (err) throw err;
else {
var test = ++album.id;
_newAlbumID = test;
console.log("IN: ", test, _newAlbumID);
req.body.id = _newAlbumID;
next();
}
});
});
感谢您的帮助和提示。
答案 0 :(得分:1)
只需测试album
非空。
Album.findOne().sort('-id').exec(function (err, album, newID) {
if (err) throw err;
else if (!album) {
...
...
}
else {
var test = ++album.id;
_newAlbumID = test;
console.log("IN: ", test, _newAlbumID);
req.body.id = _newAlbumID;
next();
}
答案 1 :(得分:0)
这是好事。我用以下方式做到了:
else if (!album) {
_newAlbumID = 1;
req.body.id = _newAlbumID;
console.log("NO ALBUM");
next();
}
当查询中没有任何相册时,我无法指定album.id = 1
。)