Articles of 表示

Node.exe陷于100%的CPU

我有一个ExpressJS node.js应用程序运行在Windows Server 2016 VM上的IISNode与4核心和32GB的内存。 我可以为每个内核设置一个进程,所以我有4个node.exe正在为我的应用程序运行。 节点版本是v6.10.3。 这是资源通常的样子: 我可以看到节点垃圾收集似乎正在发生,因为内存波动。 如截图中所示,它将正常hover在峰值工作的下方。 不过,我正试图find其中一个进程的原因,以达到100%的CPU利用率。 每当发生这种情况,我被迫杀死node.exe,因为我的整个应用程序停滞。 它将停留在高峰CPU,所有进一步的要求,然后旋转。 什么会导致node.exe中的CPU利用率高,以及如何locking在100%? 这是由于垃圾收集拖延? 什么工具可以用来找出什么node.exe停滞,以更好地debugging我的应用程序? IISNode应该作为一个负载平衡器,并将所有请求委托给另一个核心? 现在,我被迫在一个定时器上回收我的应用程序池,以完全终止所有工作节点进程并重新启动它们。 这限制了应用程序长时间的运行。 我感谢任何见解!

React / Webpack / Express渲染服务器端的问题

我试图将服务器端渲染到我现有的React / Redux应用程序中。 几次失败的尝试后,我想我几乎在那里,但我遇到了几个问题。 我对React / Redux / Express / Webpack相当陌生,所以如果我犯了一些愚蠢的错误,我很抱歉! 问题1 – 窗口未定义 当我使用Redux时,我需要跟踪初始状态并将其加载到我的应用程序中。 内部server/index.js我从商店获取初始状态,并使用window.__initialData__ = ${serialize(initialData)}存储在window.__initialData__ = ${serialize(initialData)} 。 服务器代码如下: import express from 'express'; import React from 'react'; import { renderToString } from 'react-dom/server'; import { Provider } from 'react-redux'; import { StaticRouter, matchPath } from 'react-router-dom'; import serialize from 'serialize-javascript'; import routes […]

在Mongoose(MongoDB,Node.JS,express)中的对象中创build对象后复制对象

我创build了一个循环来向不同地区添加产品(包含数据)。 首先,我想将所有产品添加到所有地区。 然后,我将(在不同的操作)从这些地区删除产品。 该网站的前提是,对象将能够被一个地区的用户保留,这将使该对象在该地区不可用,但在其他地区仍然可用。 我在注册时保存用户区域,只允许他们查看其区域中可用的对象。 我创build了名为Regions的对象,并将每个产品添加到区域内的数组。 我将它们存储在区域内的原因是未来我期待数以百计的不同产品,并且相信只要返回区域数组中的所有项目在服务器上比在每个产品中单独检查一个数值容易得多。 我的问题是 当运行我的代码,我得到我的网页内的每个对象的重复。 我使用的代码是: dummyregions.forEach(function(seed){ Region.create(seed, function(err, region){ if(err){ console.log(err); } else { dummyproducts.forEach(function(seedprod){ Product.create(seedprod, function(err, product){ if(err){ console.log(err); } else { region.products.push(product); region.save(); } }); }); } }) }); dummyRegions是一个对象,包含名称“string”和数组= [] dummyproducts包含名称“string”,类别“string”和缩略图图片url“string” 我只有4个虚拟产品和3个地区的testing项目,但这是我得到的结果: 每个地区的重复项目 任何帮助将非常感激!

在mongodb中显示字段值部分匹配的文档

以下是我的电影架构: "_id" : ObjectId("59b9501600fcb397d6acd5bb"), "theatreid" : 2, "name" : "carnival cinemas", "location" : "kanjulmarg", "address" : "sec 2,kanjul, Mumbai, Maharashtra 400703", "shows" : [ { "mname" : "bareily ki barfi", "timings" : [ 10, 13, 14, 16, 22 ] }, { "mname" : "Toilet:ek prem katha", "timings" : [ 8, 9, 14, 16, 20, 23 […]

获取Sequelize Promise的内容而不执行它

我知道这可能是一个奇怪的问题,从现在开始我很抱歉。 让我们来像我这样一个容易的东西。 let query = User.findAll({where: {name: 'something'}}) 有没有一种方法可以让我访问query的内容。 而内容的意思是使用User.findAll生成的事实,我不关心User.findAll .then()的结果。

为mongoosevalidation设置错误代码

我正在使用mongoosevalidation来validation我的模型。 例如: var some_schema = new Schema({ title: { type : [String, 'title must be string'], required: [true, 'title is required'] } }) 此架构具有自定义错误消息,我也想设置自定义错误代码

如何访问server.js文件之外的应用程序?

我有两个文件: server.js const app = express(); require('./server/config/crawlerBasedModels.config').basedModels() .then((models) => { app.locals.basedModels = models; console.log(app.locals.basedModels); }) .catch(err => console.log(err)); crawlerBasedModels.config: const fs = require('fs'); const Promise = require('bluebird'); module.exports = { basedModels: () => { return new Promise((res, rej) => { let basedModelsPath = require('../config/exportFolderPath'); const basedModels = JSON.parse(fs.readFileSync(basedModelsPath + '/basedModels.json')); if(basedModels) {console.log(basedModels); return res(basedModels);} return […]

域和子域的不同Cookie

我正在用NodeJS(LoopBack)创build应用程序。 我的主要应用程序托pipe在: domain.com和附加应用程序 – app.domain.com 。 通过使用res.cookie(name, value, [, options])我在客户端与下一行设置cookie, res.cookie('testName', 'testValue', {maxAge: 123456, secure: true, domain: 'domain.com'}) 。 当我尝试使用这一行设置cookie时,而不是domain.com,我得到.domain.com和cookie在主域和子域之间共享。 问题是我需要单独设置cookie。 一个用于domain.com的 cookie另一个用于app.domain.com 。 谢谢!

允许string文字和JSON对象同时作为请求

我正在处理一个我希望接收的JSON对象(例如{data: "value1"} )和(在其他端点)一个string(例如"value1" )。 我目前正在使用快递中间件“body-parser”: const express = require("express"); const bodyParser = require("body-parser"); const server = express(); server.use(bodyParser.json()); …. some more code … 显然,这只支持json对象处理。 主要的疑问是,我可以支持接收除JSON对象以外的纯string吗? 如果是这样,那么最好的办法是什么? PD:这是我的第一个StackOverflow问题,所以请让我知道,如果我能以任何方式改善我的问题。 提前致谢..!

通过NodeJS在stream式响应上的内存使用率高

我在通过节点代理传输xlsx文件时遇到了问题,因为它耗费了大量的内存。 从Java服务接收到响应时,文件大小约为11MB,但占用大约700MB的内存。 我不确定是什么原因造成的,因为我所做的只是直接通过pipe道响应,如下所示: var express = require('express'); var app = express(); var request = require('request'); app.all('/api/*', function (req, res) { var options = transformRequest(req); var method = req.method.toLowerCase(); request[method](options) .on('response', function (response) { logger.info('method=' + method, 'nodeEndpoint=' + req.originalUrl, 'mappedServiceUrl=' + options.url, 'responseStatusCode=' + response.statusCode); res.writeHead(response.statusCode, response.headers); if (response.statusCode > 399) { logger.error(method, options.url, response.statusCode); […]