Articles of 承诺

EmberJS Express API | TypeError:app.route不是module.exports的函数

我已经被一个服务器api难住了一个星期,现在我的余烬项目。 我无法得到一个模块化的API工作,这让我疯狂。 控制台相关: mongod,节点服务器,heroku本地(或者余烬) 首先,我试图解决的错误:(显示何时去http:// localhost:4500 /笔记 ) TypeError: app.route is not a function at module.exports (C:\Users\Accurate\Projects\emberjs\accurate2\AccurateEmber2\api\routes\noteRoute.js:21:9) at Layer.handle [as handle_request] (C:\Users\Accurate\Projects\emberjs\accurate2\AccurateEmber2\api\node_modules\express\lib\router\layer.js:95:5) at trim_prefix (C:\Users\Accurate\Projects\emberjs\accurate2\AccurateEmber2\api\node_modules\express\lib\router\index.js:317:13) at C:\Users\Accurate\Projects\emberjs\accurate2\AccurateEmber2\api\node_modules\express\lib\router\index.js:284:7 at Function.process_params (C:\Users\Accurate\Projects\emberjs\accurate2\AccurateEmber2\api\node_modules\express\lib\router\index.js:335:12) at next (C:\Users\Accurate\Projects\emberjs\accurate2\AccurateEmber2\api\node_modules\express\lib\router\index.js:275:10) at jsonParser (C:\Users\Accurate\Projects\emberjs\accurate2\AccurateEmber2\api\node_modules\body-parser\lib\types\json.js:109:7) at Layer.handle [as handle_request] (C:\Users\Accurate\Projects\emberjs\accurate2\AccurateEmber2\api\node_modules\express\lib\router\layer.js:95:5) at trim_prefix (C:\Users\Accurate\Projects\emberjs\accurate2\AccurateEmber2\api\node_modules\express\lib\router\index.js:317:13) at C:\Users\Accurate\Projects\emberjs\accurate2\AccurateEmber2\api\node_modules\express\lib\router\index.js:284:7 at Function.process_params (C:\Users\Accurate\Projects\emberjs\accurate2\AccurateEmber2\api\node_modules\express\lib\router\index.js:335:12) at next (C:\Users\Accurate\Projects\emberjs\accurate2\AccurateEmber2\api\node_modules\express\lib\router\index.js:275:10) at urlencodedParser (C:\Users\Accurate\Projects\emberjs\accurate2\AccurateEmber2\api\node_modules\body-parser\lib\types\urlencoded.js:91:7) […]

将callback转换为Promise

我想转换下面的callEndPointWrapper返回一个Promise而不是callback。 我已经testing了下面的代码,但在等待Promise for callEndpointWrapper()请求超时。 我是否错过了下面的任何东西? (在debugging的时候,我看到请求超出了代码的下面,等待Promise: return (function callEndpoint(callback): any { 回电话: function callEndPointWrapper(): any { return function callEndpoint(callback) { try { // gRPC call client[methodName](req, options, callback); } catch (err) { callback(err); } }; } const result = yield callEndpointWrapper(); // I get the correct result from callback above (both on success or error) […]

准备就绪时执行一个promise数组

我如何获得只有在连接完成后执行的承诺? var fs = require('fs'); var testFolder = './lib/'; var files = ['hello.txt', 'goodbye.txt']; var contents = ''; //creating array of promises let promises = files.map(async e => { return await fs.readFile(testFolder + e, "utf8", function (err, content) { contents += content + ".\n"; }); } ); console.log(promises); //this should happen last but "contents" is […]

节点promises.all()不按预期方式工作

我试图在使用promise.all()循环后同步运行一个函数列表,但我的代码不能按预期方式工作。 有人知道我做错了什么吗? 我的代码是: var Promise = require('promise'); var promises = []; for (var i = 0; i < 3; i++) { console.log('push promise ' + i); promises.push(foo(i)); } Promise.all(promises) .then(function (data) { console.log("done"); }); function foo(i) { return new Promise(function (resolve, reject) { console.log('—> foo i ' + i); resolve('done foo ' + i); }); […]

如何从函数返回数据

我有这样的function: export function getAllUser() { let user; UserModel .find() .exec() .then((data) => { return data; }) .catch((err) => { return err; }); } 我怎样才能从这个function返回数据? 例如,我想要定义: user = getAllUser()

如何在Node.js中进行纤维等待?

我是Node.js的新手,并意识到它与客户端JavaScript的巨大差异之一就是一切都是asynchronous的。 为了试图解决这个问题,我试图使用fibrous把我的代码转换成更实用的编程风格,但是有一些问题: 我怎样才能使下面的纤维代码工作? 例如,我想要下面的代码打印1,2,3,但它打印1,3,2 function test() { var fibrous = require('fibrous'); var fs = require('fs'); fibrous.run(function() { var data = fs.sync.readFile('/etc/passwd'); console.log('2'); }); } function runTest() { console.log('1'); test(); console.log('3'); } runTest(); // This prints 1,3,2 to the console, not 1,2,3 as I'd like. 在一个真实的用例中,上面的例程将会包装一个运行asynchronous的DB方法,并且可以编写如下的东西: var dbTable = new dbTableWrapper(); var data = dbTable.getData(); /* […]

如何绑定表示路由的一些返回Promise的函数?

如何绑定一个返回承诺的函数到一个快速路由? 我有一个函数,与我的模型对象返回承诺,我需要将其添加到控制器function,在特定的快速路线上作出反应 : app.get('/students/list', controllerFunction); (我有函数findAllActiveStudents从文件/数据库读取,并返回承诺)。 如何编写controllerFunction里面调用findAllActiveStudents并返回结果? // inside controller file exports controllerFunction = function(req, res) { // Here what to do }

在node.js中提交一个recursion函数

我在我的应用程序中使用蓝鸟的控制stream,我试图实现promisify扩展我的recursion函数到一个承诺,但它似乎像“then”方法从来没有得到执行 我正在做一个从一个JSON对象到另一个的映射,find函数按recursion方式查看JSON属性,并根据特定的条件返回属性。 var promise = require("bluebird"); var mapToModel = function(res){ // res is a json structure var processes = res.definitions.process; var diagrams = res.definitions.BPMNDiagram; var documents = []; for(var prop in processes) { if(processes.hasOwnProperty(prop)){ var propertyNames = Object.getOwnPropertyNames(processes[prop]); for(var property in processes[prop]){ var mapping ={}; if(property==="$"){ //do something with the process }else{ //shapes mapping.hash = […]

如何处理Node.js模块中的asynchronouscallback?

这是我第一次试图把一个节点模块放在一起,我仍然试图围绕如何构buildasynchronouscallback。 这是一个例子。 现在我正在尝试使用featureService.getCount()并没有得到任何回应。 使用断点,我知道featureService.getUniqueIds()正在工作。 由于callback在那里,我假设我没有得到一个长度的原因是getCount中的callback尚未响应。 在大部分时间看了下来,并没有真正提出一个非常好的解决scheme,而不是一个recursion循环检查要填充的超时值,我正在寻求build议如何更好地构build我的代码来完成任务在眼前。 我已经读了一些关于承诺。 这是一个适用的实例,甚至是一个可行的解决scheme? 我真的不知道如何实现承诺,但在这种情况下,这是合乎逻辑的。 显然我在这里输了。 感谢您提供的任何帮助。 var Client = require('node-rest-client').Client; var client = new Client(); var featureService = function(endpoint){ var uniqueIds; var count; // get list of unique id's this.getUniqueIds = function(){ if (!uniqueIds) { var options = { parameters: { f: 'json', where: "OBJECTID LIKE '%'", returnIdsOnly: 'true' } […]

nodejs中的jQuery.when()相当于什么?

我问jquery是什么时候在angular度 ,现在我想在节点做类似的事情。 我需要这样的东西: when(fs.readFile('file1'), fs.readFile('file2')) .done(function( a1, a2 ) { … // do stuff }); 我怎样才能做到这一点? 谢谢。