如何将一个asynchronous节点function变成一个承诺

我有这个asynchronousfunction,我想变成一个承诺 var myAsyncFunction = function(err, result) { if (err) console.log("We got an error"); console.log("Success"); }; myAsyncFunction().then(function () { console.log("promise is working"); }); 我得到TypeError:不能调用未定义的方法。 这段代码有什么问题?

如何以编程方式closures节点程序并重新启动?

我需要closures节点程序并重新启动。 我想在自己的程序中做到这一点,而不必像使用永远需要安装的东西,如果可能的话。 我知道我可以使用process.exit()来closures程序,但是我能想到的任何东西都会打开它,我可以从节点内启动,在process.exit()完成之前就会被kill掉。 有没有一种方法,我没有看到在我退出之前,从stream程中分离出一个EXEC调用? 任何其他的想法? 我必须吸起来,永远使用吗?

使用passport.js本地策略(使用用户名/密码)没有express.js

我想了解passport.js如何使用用户名作为密码。 文档示例使用express.js。 有没有人使用passport.js没有使用任何其他图书馆为他们的应用程序/网站? 我一直在试图寻找一个非常“勉强”的教程。 我设法find的一切都是使用express.js的例子。 任何示例或示例的链接将非常有帮助。 我正在尝试将我的node.js服务器的使用限制为一个pipe理员用户名/密码。 如果没有护照这样做的任何build议也会有所帮助!

如何检查文件名string不是一个文件path

我在节点js上编写一个服务器应用程序。 操作系统是Linux。 我收到的文件名为一个纯string,所以可以被黑客入侵。 然后我连接文件名string和pathstring是这样的: filepath = '/home/www/upload/' + filename; 我想保护一个上传脚本,除了上传文件夹[或者它的子文件夹:可选],使用我的应用程序逻辑,而不是Linux写入任何地方。 我目前天真的解决scheme是阻止有..子string的文件名。 我不在乎是否有人有两个点的文件名。 当然,在安全方面,我必须向观众征求意见:任何事情都可能出错?

Nodejs中的PassportJS永远不会调用callback函数

我正在尝试使用护照来validationyammer用户。 它可以通过yammerauthentication页面,我可以点击以允许访问,但function永远不会得到调用。 (正如你可能在我的代码中看到的,我只是想打印所有的accessToken,configuration文件,但它从不打印出来。) 请帮助我,我可能做不好。 var express = require(“express”); var app = express(); var passport = require(“护照”); var YammerStrategy = require(“passport-yammer”)。策略 passport.use(新YammerStrategy({ clientID:“”, clientSecret:“”, callbackURL:“/” }, 函数(accessToken,refreshToken,profile,done){ process.nextTick(function(){ 的console.log( “策略”); 的console.log(configuration文件); 的console.log(的accessToken); 的console.log(refreshToken); }); } )); app.get('/ login',passport.authenticate('yammer')); app.listen(3000); console.log('听取端口3000');

Express中的查询参数被提取?

我正在为Node.JS编写一个AppleScript应用程序的API。 AppleScript应用程序以下面的forms运行在shell脚本中: do shell script ("cd " & quoted form of myDir & " curl http://localhost:5000/server.properties?some-value=true&next-value=something%20else&[…] -O") 它打算下载名为server.properties的文件到基于指定参数的内容的目录myDir ,但由于某种原因,当Express收到请求时,它显示只有当我运行console.log(res.originalUrl) : /server.properties?some-value=true 它将把这个请求视为没有其他参数被指定。 任何人都可以告诉我我做错了什么,或者如何找出错误的地方? 编辑原来是我运行shell脚本的方式。 该URL需要被引用,以便&在shell脚本中不作为操作符。

MongoDb数据关系

我有一个: MongoDB数据库 NodeJS上的REST API Angular JS前端 现在我想创build数据库schma。 这将是: 故事 – 用户插入故事与描述。 问题 – 与故事的关系。 有一个故事可以有100多个问题。 答案 – 与问题的关系。 一个问题只能有一个答案。 我应该在MongoDb中select什么types的关系? 我需要更快的精神。 例如: { title: "Story title", descr: "Story descr", questions: [ {body: "Question body", user: "User} ] }

如何将数据从PHP传递给Node?

这就是我现在正在尝试的: PHP shell_exec('node bin/gfm.js '.escapeshellarg($code)) Node.js的 console.log(process.argv[2]); 但是Node似乎只是接收$code的第一行 ,所以看起来escapeshellarg并没有正确地逃避换行。 我还能怎么做呢? 如果更简单,我可以使用stdin ,但是在PHP和Node上看起来都很复杂。

MongoDB地理空间索引,如何与数组元素一起使用?

我想让凯文酒吧点附近的特定位置。 这里是userSpots集合: { user:'Kevin', spots:[ { name:'a', type:'pub', location:[x,y] }, { name:'b', type:'gym', location:[v,w] } ] }, { user:'Layla', spots:[ … ] } 这是我试过的: db.userSpots.findOne( { user: 'Kevin', spots: { $elemMatch: { location:{ $nearSphere: [lng,lat], $maxDistance: d}, type: 'pub' } } }, }, function(err){…} ) 我收到一个奇怪的错误。 Mongo告诉我没有索引:2d在位置字段。 但是,当我检查与db.userSpots.getIndexes(),2d索引在那里。 为什么不mongodb看到索引? 有什么我做错了吗? MongoError: can't find special index: […]

节点参数文件扩展名RegExp

我想使用node.jssearch一个特定的文件types的目录。 var fs = require('fs'); var dir = process.argv[2]; // directory var ext = process.argv[3]; // file extension to search for fs.readdir( dir, function(err, list) { if(err) throw err; // build regex search var re = new RegExp("^.*\." + ext + "$"); // print if specific extension found list.forEach( function(item) { if( re.test(item) ) console.log(item); […]