Tag: 函数

从传递给函数的string中调用一个javascript函数

我在这里看到了类似性质的多个问题,但是没有人会为我具体的东西(即时使用node.js)工作。 所以例如在这里拿这个代码。 function command_call(message, socket) { if (message.length > 1){ var func = message[0]; var string = message.slice(1); var string = string.join(' ')} else{ var func = message[0]; var string = '';}; if(func[0] == '$') { (eval(func.slice(1)))(string, socket);}; }; function say(string, socket){ socket.write(string)}; 如果传递给command_call的消息是“$ say hi”,那么函数会被调用并返回“hi”。 这工作得很好,但是,如果被放到eval的函数不存在,它崩溃。 例如,如果传递给command_call的消息是“$ example blah”,它将尝试评估“example”。 基本上我需要它来检查function是否存在之前它的function。 是的,我想要使用eval,除非有更好的方法来做节点。 再次,这是在node.js

当执行一个Function对象时,节点“ReferenceError:require is not defined”

我试图执行一个函数对象,它基本上和下面的伪代码一样: var testF = new Function("x","y", "var http = require('http');"); testF('foo','bar'); 并得到: ReferenceError: require is not defined 我是否需要以某种方式添加重新加载require模块的内容,因为它不是Node中的全局模块? 如果是这样,谷歌并不是我的朋友,所以任何关于如何这样做的指针会是太棒了。 感谢您的想法。

节点JS MySQL查询函数不返回结果

我在节点JS上运行的.js文件中运行MySQL查询。 我有连接设置确定和查询工作,但是当我尝试返回到原来的调用结果似乎并没有工作。 function sqlQuery(query){ console.log("Running query"); var conn = connection(); var result = false; conn.query(query, function(err, rows, fields) { conn.end(); if (!err){ result = rows; } else { result = err; } }); return result; } var loginResult = sqlQuery("SELECT * FROM `players`"); console.log(loginResult); 如果我使用下面的代码,它将结果写入查询中的控制台,但不是最终的“loginResult”。 我没有得到任何错误,所以我的问题是 – 是否有我得到返回结果的方式错误? if (!err){ result = rows; console.log(rows); } […]

给定一个string格式的函数如何将其转换回到JavaScript中的函数?

说我有一个JavaScript的function var fn = function () { return 6 + 5; }; 然后我做 fn.toString(); 哪个返回 "function () { return 6 + 5; }" 我怎么能把它变成一个函数,并最终在后面调用它。 我已经试过eval就像其他人所说的,但这似乎并没有为我工作。 任何帮助将非常感激!!!

我怎么能包装每一个快递路线处理程序与另一个function

基本上我想代替这个… app.get(routes.test, function(req, res, next){ actualRouteHandler(req, res, next) // Always returns a promise or throws. .catch(function(err) { next(err); }); }); 有这个: app.get(routes.test, catchWrap(actualRouteHandler)); 或者类似的东西,我试着弄乱fn.apply和东西,但我找不到一个方法来传递actualRouteHandler正确的参数(请求,水库,下一个),仍然有function。 我是否需要返回一个函数或类似的东西? 编辑:我认为可能有这样做的库,但我们没有访问这一点代码中的实际expression应用程序。

在快速中间件中提供自定义参数

我有我的Node.js应用程序的问题。 总之,我想将自定义parameter passing到我的中间件function,而不仅仅是req , res和next 。 中间件文件: var DB = require('./DB.js'); function requirePermissions(e) { console.log('nope') } module.exports = requirePermissions; 路线: router.post('/posts', requirePermissions('post_creation'), function(req, res) { var o = req.body, title = o.post.title, content = o.post.content; res.send('made it'); }); 我已经确认使用函数requirePermissions(req, res, next) {}将工作,但我不明白如何包含我自己的参数。

通过refence javascript传递基元variables

我试图通过引用传递原始variables。 var foo = 2; function inc (arg) { arg++ } inc(foo) //won't increment foo 上述不起作用,因为在JavaScript中,基元(如数字)是通过值传递的,而对象是通过引用传递的。 为了通过引用传递原语,我们需要将它们声明为对象: var foo = new Number(2) function inc (arg) { arg++ } inc(foo) //increments foo 这似乎是一个非常hacky解决方法,可能会伤害执行速度。 在其他OO语言中,我们可以将“指针”或“引用”传递给函数。 JS中有这样的东西吗? 谢谢!

nodejs在函数中等待exec

我喜欢将nodejs中的exec集成到自定义函数中,以处理这个函数中的所有错误。 const exec = require('child_process').exec; function os_func() { this.execCommand = function(cmd) { var ret; exec(cmd, (error, stdout, stderr) => { if (error) { console.error(`exec error: ${error}`); return; } ret = stdout; }); return ret; } } var os = new os_func(); 这个函数返回undefined,因为exec值在返回时还没有完成。 我该如何解决? 我可以强制该function等待执行吗?

使用dependency injection在javascript中返回一个函数

有没有办法在javascript中返回一个函数而不调用它,但仍然指定参数? 我正在使用node.js在JavaScript中简单模仿angular的dependency injection系统 – inject()方法如下所示: var injectedFunction = module.inject(function (funcToRegister) { return funcToRegister(); }); 而module.inject()函数如下所示: var inject = function(func) { var args = resolveDependencies(func); // so 'args' is an array of function dependencies, like [Function: funcToRegister] return func.apply(null,args); // not sure how to correctly return this function! }; 目前我不知道如何返回函数与其更新的依赖项(作为参数),而不实际调用它,或只是返回一个空对象。 有任何想法吗? 谢谢!

正则expression式与星星的电话号码

以下function将电话号码(例如+33286487648)转换为+332 ****** 48。 formatPhoneWithStar = function(phone) { const prefixLength = 4; const suffixLength = 3; const prefix = phone.substring(0, prefixLength); const suffix = phone.slice(-suffixLength); const nbStars = phone.length – (prefixLength + suffixLength); let formattedPhone = prefix; for (let i = 0; i < nbStars; i++) { formattedPhone += '*'; } formattedPhone += suffix; return formattedPhone; […]