小编Jav*_*edi的帖子

Nodejs Mongoose Saving model undefined不是一个函数

我使用Nodejs Express路由和Mongoose来保存数据.我做了核心路线CRUD操作没有问题.但是,当我尝试在Model的某个字段上执行某些操作然后尝试使用model.save保存Model时,它说的是.save()方法:"undefined不是函数"

所以,这是代码.片段编号(1)工作得很好:

router.put('/:myId', function (req, res, next) {
var ourUpdateData = req.body;
Model.findOne({myId: req.params.myId.toString()}, function (err, foundModel) {
    if (err) throw err;

    if (ourUpdateData.fieldA) foundModel.fieldA = ourUpdateData.fieldA;
    if (ourUpdateData.fieldB) foundModel.fieldB = ourUpdateData.fieldB;
    if (ourUpdateData.fieldC) foundModel.fieldC = ourUpdateData.fieldC;
    if (ourUpdateData.fieldD) foundModel.fieldD = ourUpdateData.fieldD;
    if (typeof ourUpdateData.fieldArray === "object") ourUpdateData.fieldArray = ourUpdateData.fieldArray;

    foundModel.save(function (err, updatedModel) {
        if (err) throw err;
        res.send(updatedmodel);
    });
});
Run Code Online (Sandbox Code Playgroud)

});

所以模型有6个字段:fieldA,.. B,.. C,.. D,myId标识为索引,一个字段是一些值的字段fieldArray.上面的例子保存了Model,工作正常.但是,如果我现在尝试使用数组字段fieldArray做一些事情,然后保存模型,当我使用model.save()时,它会抛出"undefined is is a function".所以代码段(2)是产生此错误的代码:

    router.get('/:myId/:addThisToFieldArray', function(req, res, next) {
    var myId = req.params.myId; …
Run Code Online (Sandbox Code Playgroud)

javascript save undefined mongoose node.js

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

Vertx缩放每个线程的实例数

Vert.x是一个用于在JVM上构建响应式应用程序的工具包.

我想将vertx用于基于JVM的自动扩展RESTful后端API.

到目前为止我从文档中发现,默认情况下它占用了你机器中的内核数量,假设你有N个内核并为每个内核创建N个线程,每个线程都是一个事件总线,每个线程都包含vertx实例.问题是,Vertx如何控制实例数量?基于负载压力?

关于控制使用给定线程运行的Verticle数量的这个事情我仍然没有得到.请帮忙澄清这件事.假设机器有4个内核,我编写了两个扩展为AbstractVerticle的类:

1)让一个数据库数据检索器(让我们称之为RETRIEVER或"R")

2)另一个让我们说是一些转换器(我们称之为CONVERTER或"C")

现在我使用vertx运行或编译并运行:

$ java -jar retrievever.jar

$ java -jar converter.jar

因此,由于我们有4个内核,因此在启动时Vertx将为每个内核创建4个线程.

问题1:

默认情况下,每个线程中有多少个检索器和转换器实例?我猜这是每个线程的一个实例?对?所以我们总共有4个核心,总​​共4个猎犬实例和4个实例.转换器?正确?

问题2:

如果随着对RETRIEVER("R")和COVERTER("C")(从1.000到1.000.000呼叫)的调用次数增加而增加负载压力,Vertx将自动管理"R"和"C"实例的数量需要处理增加的系统调用次数?

在stackoverflow上有一个类似问题的问题: 我可以在Vert.x HTTP请求队列上设置容量吗?

Jordan Halterman建议:"还要注意,您可以跨多个Verticle实例扩展HTTP服务器以处理更多请求.在这种情况下,您可以使用静态变量或共享数据来跨实例共享信号量."

问题3:

但是,如何缩放Verticle实例以处理更多请求呢?我在文档中找不到这个.

我很感激提前帮忙!

java scaling multithreading vert.x

3
推荐指数
1
解决办法
4722
查看次数