如何在Expressjs中创build可重用的函数代码?

在我的项目中,我是ExpressJs和模块模式的新手。 现在,我卡住了如何在另一个控制器中使用创build的控制器function。 请看例子: menu.ctrl.js ———— module.exports.save=function(req,res,next){ //here some logic //somethings like validate req.body,etc menu.save(function(err){ if(err) return next(err); res.json({msg:'menu save'}) }) } user.ctrl.js ———— var user=require('./user.model') var menuCtrl=require('./menu.ctrl') module.exports.save=function(req,res,next){ //here some logic user.save(function(err){ if(err) return next(err); //HERE I WANT TO USE `menuCtrl.save()` function res.json({msg:'success'}); }) }

意外的标记punc«(»,预期punc从UglifyJS创build块时

尝试使用webpack 2.2.1进行生产构build时出现以下错误: > cross-env NODE_ENV=production webpack –config internals/webpack/webpack.prod.babel.js –color -p –progress Hash: 7bb2cdb98aab2f36f7e1 Version: webpack 2.2.1 Time: 259158ms Asset Size Chunks Chunk Names 39.1ac14d04bb54ae025fbd.chunk.js 575 kB 39 [emitted] [big] .htaccess 1.53 kB [emitted] manifest.json 624 bytes [emitted] 0.b0881f3ea995a2fc465f.chunk.js 600 kB 0 [emitted] [big] 1.350b2d8a46d91e3c0911.chunk.js 918 kB 1 [emitted] [big] 2.e52c43dc81bf586e8812.chunk.js 636 kB 2 [emitted] [big] […]

在Promise中处理错误,就像async / await语法中的stream程一样

我有一些问题需要处理“平行”的多重拒绝。 当我们“并行等待”时如何处理asynchronous函数中的拒绝。 这里是一个例子: function in_2_sec(number) { return new Promise((resolve, reject) => { setTimeout(() => { reject('Error ' + number); }, 2000); }) } async function f1() { try { let a = in_2_sec(3); let b = in_2_sec(30); return await a + await b; // awaiting in "parallel" } catch(err) { console.log('Error', err); return false; } […]

meteornode.js最新版本

为什么Meteor使用node.js 4.8.2而最新版本的node.js是7.7.3 ? $ node –version v7.7.3 $ meteor node –version v4.8.2

控制器是在DOM中加载,但视图没有加载,无法find控制器oclazyload与玉(pugjs)

我为我的项目和angular-ui-routing使用angular 1.6来与PugJs进行HTML模板的路由。 我试图在我的应用程序中实现Lazyload,但不知何故,它不工作可能是由于玉。 代码: var app = angular.module('myApp',['ui.router','oc.lazyLoad']); app.config(['$ocLazyLoadProvider', function($ocLazyLoadProvider { $ocLazyLoadProvider.config({ debug: true, modules: [{ name: 'js', files: ['js/*'] }] }); }]); .state("exampleState", { url: '/example', templateUrl: '/example', controller:'exampleCtrl', resolve: { deps: ['$ocLazyLoad', function($ocLazyLoad) { return $ocLazyLoad.load({ files: ['/js/exampleCtrl.js'] }) }] } }) 控制器: app.controller('exampleCtrl',function($scope){ console.log('controller loaded'); }); 在前端我使用节点将这些玉转换成HTML,所以当“templateUrl”被路由服务访问时,它将被redirect到这个代码: app.get('/example', function(req, res) { res.render('/example'); […]

moment.js – 检查两个时刻是否来自同一周,但星期五开始,星期四结束

我正在用node.js和discord.js创build一个不和谐的机器人,并且有一个function允许用户通过命令进行投票,但是我希望他们每周仅投票一次。 问题是,在这个不和谐之处, 星期五从星期五开始到星期四结束 ,所以我不能简单地写: var weekNow = moment().week(); var weekLastVote = moment(dateLastVote).week(); if (weekNow == weekLastVote){ //Prevent from voting again } else { //Let the user vote } 因此,我写了一些似乎可以工作的代码,但是由于它看起来很潦草,所以我希望你的意见,我不确定是否考虑了所有的可能性(我不知道我是否例如需要使用我的月份variables): module.exports = { isSameWeek: function (dateLastVote) { // moments for today's date var dayNow = moment().weekday(); var weekNow = moment().week(); var monthNow = moment().month(); var yearNow […]

安装API Connect工具包时的完整性校验和失败#apiconnect

安装API Connect工具包时出现以下错误: sha1-UhOHSxsj + deaxi0QbjKXDirzcn8 =使用sha1时的完整性校验和失败:想要sha1-UhOHSxsj + deaxi0QbjKXDirzcn8 =但得到了sha1-208ds / bfbkHrcce1kMfz2sLUPhs =。 (627039字节) 节点版本: – 6.10.3 NPM版本: – 5.0.1 我试图使用npm install -g apiconnect命令在Windows 7工作站(64位)上安装API Connect工具包。 解决这个问题的下一步可能是什么?

Node.js setImmediate在I / Ocallback之前执行(Event Loop)

看看下面的代码: var fs = require('fs'); var pos = 0; fs.stat(__filename, function() { console.log(++pos + " FIRST STAT"); }); fs.stat(__filename, function() { console.log(++pos + " LAST STAT"); }); setImmediate(function() { console.log(++pos + " IMMEDIATE") }) 当我执行这个代码时,显示以下结果: 正如Node.js 文档所解释的,setImmediate是在I / Ocallback之后执行的,但在本例中,在I / Ocallback之前正在执行setImmediate,我错过了什么?

为什么我们需要传递module.exports作为参数,因为我们已经将模块作为parameter passing了?

我一直在浏览一些关于Node.js的在线教程。 我所理解的是,在使用require(./file-path)函数时,节点获取该文件的内容并包装在一个即时调用函数 (function(exports, require, module, __filename, __dirname) { // content }()) 我明白exports和module.exports之间的区别。 这就是我在互联网上看到的关于search上述问题的全部内容。 但是,我的问题是,为什么我们需要将module.exports和module传递给包装IIFE? 我们可以单独传递模块,然后从中获取module.exports 。 这样做有什么好处吗? 通常,当我们将一个对象传递给一个函数时,我们不必另外传递object.property 。

如何在node js spawn中运行复杂命令?

我正在为nodejs中的docker命令行开发一个lib,我仍然在开始,我只是尝试在节点js中使用spawn基本的docker运行命令 – 一切工作正常,但它不适用于下面的复杂情况。 我想docker run –rm -it julia:0.3.6 julia -E "[x^2 for x in 1:100]"在nodejs中,但我正在gettting下面的错误 – input设备不是TTY Docker Shell existed with status = 1 在代码下面 – const spawn = require('child_process').spawn, dockerDeamon = spawn("docker", ["run","–rm", "-it", "julia:0.3.6", "-E", "\" [x^2 for x in 1:100]\""] ); dockerDeamon.stdout.on('data', data => { console.log(`${data}`); }); dockerDeamon.stderr.on('data', data => { console.log(`${data}`); […]