小编Jon*_*sen的帖子

Nodemon + babel多次重启服务器

在我的package.json中,我有一个启动脚本,我正用于我的开发环境.它看起来像这样:

"scripts": {
    "dev": "NODE_PATH=src nodemon --watch src/ --exec babel-node src/app.js"
}
Run Code Online (Sandbox Code Playgroud)

当我击中npm run dev一切时,一切正常,巴贝尔正在发现应有的一切,并且nodemon开始观看.我看到了这个:

[nodemon] 1.11.0
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: /Users/Jonathan/Documents/swissnet/src/**/*
[nodemon] starting `babel-node src/app.js`
Run Code Online (Sandbox Code Playgroud)

当我在src/-folder节点中保存文件时,将重新启动服务器.但这是我的问题,它重启2-3次......每次我保存一个文件,它看起来像这样:

[nodemon] restarting due to changes...
[nodemon] starting `babel-node src/app.js`
[nodemon] restarting due to changes...
[nodemon] starting `babel-node src/app.js`
[nodemon] restarting due to changes...
[nodemon] starting `babel-node src/app.js`
Run Code Online (Sandbox Code Playgroud)

如果我输入"rs",那么nodemon会按预期重启一次.

我不知道如何解决这个问题,甚至不知道在哪里寻找答案.我试过去谷歌吧.我一直在访问github上的软件包的bug部分...(也许我只是在google搜索).
这是我为同一个问题找到的唯一链接,但它似乎没有答案:Nodemon在使用babel时多次运行保存.
无论如何我尝试了他的脚本,NODE_PATH=src nodemon src --exec babel -w src/ --out-dir build/ --source-maps …

babel node.js nodemon babel-node

9
推荐指数
3
解决办法
7645
查看次数

使用不同的值更新多个文档

我正在使用jquery ui的可排序函数()来重新排列元素.我已经构建了自定义回调来创建这些元素的列表.所以当我移动一个元素时,所有元素都会被赋予一个新的位置id.它可能看起来像这样:

[{
    id_of_element_in_database: 12,
    new_position: 0
}, {
    id_of_element_in_database: 16,
    new_position: 1
}, {
    id_of_element_in_database: 14,
    new_position: 2
}]
Run Code Online (Sandbox Code Playgroud)

我通过做一个简单的Ajax帖子将这个列表发送到我的后端

$.post('/position', { data: list });
Run Code Online (Sandbox Code Playgroud)

路线

router.post('/position', (req, res) => {
    console.log(req.body.data); // This prints the array of objects above.
});
Run Code Online (Sandbox Code Playgroud)

架构

mongoose.Schema({
    id: Number,
    position: Number,
    ...
});
Run Code Online (Sandbox Code Playgroud)

现在我无法弄清楚如何有效地改变所有文件的位置.创建一个糟糕的数组循环并执行多个数据库请求不是最好的方法.

我在这里试过,这感觉很错.

for (let i in req.body.data) {
    collection.update({ id: req.body.data[i].id }, { position: req.body.data[i].position });
Run Code Online (Sandbox Code Playgroud)

我必须有其他的东西来实现这一目标.我试过谷歌没有任何运气.

javascript mongoose mongodb node.js

5
推荐指数
1
解决办法
1068
查看次数

更新插入不适用于 updateOnebulkWrite v3.4

我正在尝试批量写入一些更新,除了更新插入之外的所有内容都正常。
我的代码完美地更新了所有项目,并且没有给出任何错误。
这里的问题是批量插入updateOne没有更新插入。

(这是我的代码的未经测试和缩短的示例,因此您可能会发现一些语法错误。希望您明白。)

async function insert(items) {
    const ops = items.map(item => ({
        updateOne: {
            filter: {
                id: item.id,
                country: item.country,
            },
            update: { $set: item },
            upsert: true
        }
    }));

    return await db.collection.bulkWrite(ops);
}

insert([{
    id: '123',
    country: 'uk',
    email: 'test@test.com'
}]);
Run Code Online (Sandbox Code Playgroud)

上面的代码片段不会更新插入缺失的项目,但会正确更新其他所有内容。

我正在使用node version 6.6.0andmongodb version v3.4.10并根据 3.4 的 mongodb 文档(https://docs.mongodb.com/v3.4/reference/method/db.collection.bulkWrite/),bulkwrite3.2 版本中的新增功能。

此片段来自 MongoDB 3.4 文档bulkWrite

db.collection.bulkWrite( [
   { updateOne :
      {
         "filter" : <document>,
         "update" …
Run Code Online (Sandbox Code Playgroud)

mongodb node.js

2
推荐指数
1
解决办法
7479
查看次数

标签 统计

node.js ×3

mongodb ×2

babel ×1

babel-node ×1

javascript ×1

mongoose ×1

nodemon ×1