Tag: node.js

使用SQL根据单个logging的更改更改多个logging

我有一张食物的桌子。 他们有一个“职位”字段,表示他们应该在列表中显示的顺序(listID是他们所在的列表,我们不想重新排列另一个列表上的项目)。 +–id–+–listID–+—name—+–position–+ | 1 | 1 | cheese | 0 | | 2 | 1 | chips | 1 | | 3 | 1 | bacon | 2 | | 4 | 1 | apples | 3 | | 5 | 1 | pears | 4 | | 6 | 1 | pie | […]

为什么使用if(!! err)?

在这个来自sequizeize文档的代码示例中: if (!!err) { console.log('Unable to connect to the database:', err) } else { console.log('Connection has been established successfully.') } 为什么他们使用(!!err)来检验错误的真实性? 和if (err)不一样吗?

如何将MongoDB文档中的所有数组元素更改为某个值?

假设我有以下文件 { _id: ObjectId("5234cc89687ea597eabee675"), code: "xyz", tags: [ "school", "book", "bag", "headphone", "appliance" ], qty: [ { size: "S", num: 10, color: "blue" }, { size: "M", num: 45, color: "blue" }, { size: "L", num: 100, color: "green" } ] } { _id: ObjectId("5234cc8a687ea597eabee676"), code: "abc", tags: [ "appliance", "school", "book" ], qty: [ […]

如何设置socket.io起源限制连接到一个url

我们有一个html网站和一个node.js服务器,它服务于该网站。 网站和服务器使用socke.io交换数据。 我们在文档中find了这个: 原点默认为 *:* 允许连接到Socket.IO服务器的原点。 我们的html.site位于http://questionexample.com/page1 。 只有本网站可能连接到我们的服务器(但每个人都可以连接到该网站)。我们如何设置起源?

为什么不能内联调用res.json?

我有和expressjs应用程序,并在特定的路线我调用一个函数,通过调用res.json与数据库文件作为参数与数据库中的用户响应。 我使用基于承诺的库,我想内联的callback,我把数据库文件的响应。 但是当我这样做的时候程序就会失败。 有人可以解释为什么吗? 我也想知道为什么内联调用console.log实际上工作。 两个方法res.json和console.log之间有一些根本的区别吗? 这是一个什么工作,什么不工作的例子。 假设getUserFromDatabase()返回用户文档的承诺。 //This works var getUser = function(req, res) { getUserFromDatabase().then(function(doc) { res.json(doc); }); } //This does not work (the server never responds to the request) var getUserInline = function(req, res) { getUserFromDatabase().then(res.json); } //This works (the object is printed to the console) var printUser = function(req, res) { […]

使用Android发送HTTP发布请求

我一直在尝试从SO和其他站点上的大量示例中学习,但我无法弄清楚为什么我一起入侵的例子不起作用。 我正在构build一个小型概念validation应用程序来识别语音,并将其作为POST请求发送到node.js服务器。 我已经确认了语音识别工作,并且服务器正在接收来自常规浏览器访问的连接,所以我被引导认为这个问题是在应用程序本身。 我是否缺less一些小而愚蠢的东西? 没有错误被抛出,但服务器永远不会识别连接。 提前感谢您的任何build议或帮助。 相关的Java(主要活动和必要的AsyncTask): protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 1001) { if (resultCode == RESULT_OK) { ArrayList<String> textMatchList = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); if (!textMatchList.isEmpty()) { String topMatch = textMatchList.get(0); PostTask pt = new PostTask(); pt.execute(topMatch); } } } } private class PostTask extends AsyncTask<String, String, String> { […]

使mongoose.js查询同步运行

我有两个mongoosecollections。 第一个存储地点列表,第二个是访问地点。 我的节点代码通过并试图获取每个地方的访问列表,并构build一个string,我输出为JSON。 第一个查询在第二个开始之前完成 – 是否有办法让它们同步运行?

nodejs / v8 flamegraph中使用perf_events的未知事件

我试着用Brendan Gregg 在这里描述的使用Linux perf_event进行nodejs分析。 工作stream程如下: 使用–perf-basic-prof运行节点> 0.11.13,它会创build/tmp/perf-(PID).map JavaScript符号映射的/tmp/perf-(PID).map文件。 使用perf record -F 99 -p `pgrep -n node` -g — sleep 30捕获堆栈perf record -F 99 -p `pgrep -n node` -g — sleep 30 使用此库中的stackcollapse-perf.pl脚本折叠堆栈 使用flamegraph.pl脚本生成svg火焰图 我得到以下结果(开头看起来非常好): 问题是有很多[unknown]元素,我想应该是我的nodejs函数调用。 我假设整个过程在第3点失败,其中perf数据应该使用由–perf-basic-prof执行的node / v8生成的映射来折叠。 创build/tmp/perf-PID.map文件,并在节点执行过程中向其写入一些映射。 如何解决这个问题? 我正在使用CentOS 6.5 x64,并且已经尝试使用节点0.11.13,0.11.14(包括预构build和编译),但都没有成功。

Node.jsvariables声明和范围

当我在node.js中input时,我得到了undefined 。 var testContext = 15; function testFunction() { console.log(this.testContext); } testFunction(); =>undefined 没有var关键字,它通过(=> 15)。 它在Chrome控制台中工作(使用和不使用var关键字)。

防止Node.js中的SQL注入

是否有可能防止SQL注入在Node.js(最好与一个模块),就像PHP有防备他们的Prepared语句相同的方式。 如果是这样,怎么样? 如果不是, 那么有些示例可能会绕过我提供的代码(请参见下文)。 一些上下文: 我正在使用node-mysql模块构build一个由Node.js + MySql组成的后端堆栈的Web应用程序。 从可用性的angular度来看,这个模块非常棒,但是它还没有实现类似于PHP的Prepared Statements (尽pipe我知道它是在待办事项上 )。 从我的理解来看,除了别的之外,PHP的准备语句的实现在预防SQL注入方面起了很大作用。 不过,我担心, 即使使用默认提供的string转义 (如下面的代码片段),我的node.js应用程序也可能面临类似的攻击。 node-mysql似乎是node.js最stream行的mysql连接器,所以我想知道其他人可能在做什么(如果有的话)来解决这个问题 – 或者如果它甚至是node.js的问题开始(不知道这将不会如何,因为涉及用户/客户端input)。 我应该暂时切换到node-mysql-native ,因为它提供了准备好的语句? 我不愿意这样做,因为它似乎不像node-mysql那样活跃(尽pipe这可能意味着它是完整的)。 下面是用户注册代码片段,它使用了卫生清理器模块,以及node-mysql预先准备好的类似语句的语法(正如我上面提到的那样,字符转义),以防止跨站点脚本和sql注入: // Prevent xss var clean_user = sanitizer.sanitize(username); // assume password is hashed already var post = {Username: clean_user, Password: hash}; // This just uses connection.escape() underneath var query = connection.query('INSERT INTO users […]