问题标签 [nodejs-server]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
683 浏览

node.js - 如何在导入的路由文件中使用在 server.js 文件中创建的日志中间件

我的盘子里有一个非常令人困惑的问题,我有一个 server.js,这是我的第一个应用程序入口点:

如您所见,我有一个记录器(pino)并且我使用它并且它工作正常。现在我需要向这个入口点服务器文件添加一个路由文件,问题就在这里。如何在 test.js 路由文件中传递或使用我在 server.js 中创建的记录器(寻找最佳实践)?

0 投票
2 回答
229 浏览

node.js - 外部文件 404 Not Found 中的 NodeJS Express 路由

我是 NodeJs 和 express 的新手。我的目标是拥有一个单独的路由文件,其中包含我所有的应用程序路由。所以我创建了一个名为routes.js. 内容如下所示:

在我的主文件中,我需要带有这一行的文件。该app变量包含我的 express 实例。

如果我http://localhost/auth/register在浏览器中调用,我总是会遇到404 Not Found错误。当我直接在主文件中定义路由时,app.get('/auth/register', require('./controllers/auth/register'));它运行良好。我的控制台中没有错误。

有谁知道为什么我的单独路由文件不起作用?谢谢您的帮助!

0 投票
1 回答
4423 浏览

node.js - 使用 Node Js 的 AWS Lambda 在 http.request() 上提供“连接 ETIMEDOUT”

我编写了 lambda 函数,每当在 s3 存储桶上创建任何新对象时都会检索 s3 Url。检索 s3Url 后,此 lambda 通过 REST 调用向我的服务器发出请求。

我观察了云观察者。它无法向我的服务器发送请求我不想在我的 lambda 中使用外部包,我想让它轻量级,这就是我使用 nodeJ 的 https 的原因。

这是我的 Lambda 代码

这是我的云观察者错误

{ “errorType”:“错误”,“errorMessage”:“连接 ETIMEDOUT 34.255.225.41:443”,“代码”:“ETIMEDOUT”,“errno”:“ETIMEDOUT”,“系统调用”:“连接”,“地址” :“34.255.225.41”,“端口”:443,“堆栈”:[“错误:连接 ETIMEDOUT 34.255.225.41:443”,“在 TCPConnectWrap.afterConnect [as oncomplete] (net.js:1107:14)”] }

0 投票
0 回答
191 浏览

node.js - Nodejs:覆盖 global.eval

有什么方法可以安全地覆盖 eval 吗?试过直接覆盖:

这以某种方式给出了以下参考错误:

ReferenceError:未定义 createCallback

注意:这里的错误不是在覆盖时产生的,而是在某些调用 eval 时产生的。在其他情况下,这完全符合预期。

请在此处找到问题重现代码:https ://runkit.com/embed/8hv0yp94on8s

0 投票
1 回答
3172 浏览

javascript - 仅放置请求的 CORS 预检问题

我有一个奇怪的问题。在浏览器上放置请求时出现 cors 错误:

这是我在后端(nodejs)中启用cors的代码。所有其他 api 请求都已使用以下代码修复,并且仅 put 仍然返回 cors 问题:

我错过了什么吗?

**更新

在此处输入图像描述

0 投票
1 回答
845 浏览

node.js - 在集群模式下使用带有 PM 2 的 NodeJS Express 服务器

因此,我将尽我所能解释这一点:

我编写了一个 TCP 服务器,它接受来自可穿戴设备(gps 手环类型)的数据,使用netin NodeJS. TCP 服务器有connections = {}属性,它包含所有的连接,像这样:

  • 服务器接受连接
  • 设备发送握手包,其中包含device id
  • 套接字存储如下:connections[device_id] = socket

同样的 TCP 服务器也有express服务器,它允许我使用 JSON post 将数据直接发送到设备:curl -XPOST https://localhost:8080/send/device_id -d '{"command": "test"}'

服务器解析 url 并写入套接字connections[params.device_id].write()

这一切都很好,当使用pm2 start server.js. 我能够跟踪设备、接受和发送数据等。

问题是,当我pm2 start -i 5 server.js在集群模式下启动服务器时,设备连接工作正常,但express部分给我带来了问题。

例如:当我curl -XPOST https://localhost:8080/send/device_id -d '{"command": "test"}'在 80% 的时间内使用时,这将转到错误的实例server.js,因为有五个server.js正在运行的副本,每个副本都有express服务器,并且由于 PM2 管理所有内容,我的请求将到达给定的tcp服务器device_id5 次中有 1 次连接。按照我的理解,PM2 启动 5 个实例,server.js并管理和平衡 和 的tcp连接express

所以,我的问题是,我应该如何管理这个?有没有办法告诉 PM2 将端口转发8080到集群中所有正在运行的实例?这样我可以向所有实例发送单个命令,并在实例中检查 device_id 是否已连接,并写入它的套接字。

这可能吗?如果可以,这是个好主意吗?如果不是,那么正确的方法是什么?

希望我设法解释

问候

* 编辑 *

从最初的问题可能不清楚,但有socket问题是从net.createServer函数传递的,比如

0 投票
1 回答
108 浏览

actions-on-google - 智能家居温度设置读数(摄氏度)自定义范围

我正在使用 action.devices.types.THERMOSTAT 和 action.devices.traits.TemperatureSetting,我想将摄氏度的自定义范围设置为 16 到 28 是否可能?我尝试使用 bufferRangeCelsius 属性,但它对范围和默认摄氏度范围(从 10 到 32 出现)没有产生任何影响,我尝试过如下所示,

0 投票
1 回答
252 浏览

node.js - Bcrypt NodeJS比较密码总是返回false

所以很明显我正在使用 bcrypt 来注册和散列我的密码,这很有效。现在我正在登录,我必须在数据库中比较表单密码和哈希密码,这就是我这样做的方式:

它总是返回 false;如果我 console.log result[0].password,我会找回我的散列密码,这很好,但为什么它总是返回 false?

0 投票
1 回答
629 浏览

node.js - nodejs 请求模块在本地主机上返回 ECONNREFUSED

我正在尝试对我的本地主机进行 api 调用,但我总是得到 Error: connect ECONNREFUSED 127.0.0.1:5005 at Object.exports._errnoException (util.js:1022:11)

如果我使用 IP 而不是 localhost,它确实有效

0 投票
2 回答
117 浏览

node.js - 如何在 Nodejs 中基于 ISODate 获取数据?

我在 MongoDB 中有 ISOdate 格式的数据。当我在 mango shell 中运行查询时,它可以正常工作。

但是当我在 nodejs 中使用相同的查询时,它给出了一个错误

仍然没有获取价值