Articles of 标准input

用户inputasynchronousNode.JS

在下面的代码中,我想要一个Grid ,请求x和y 。 然后我会再次get Grid 。 但是,由于Node.JS是asynchronous的,所以在请求x之前,在给定x之前和询问y之前执行第二个get 。 在执行其余的代码之前,我应该检查先前的过程是否已经完成。 就我所知,这通常是通过callback完成的。 我目前的callback似乎不够,在这种情况下,我如何强制同步执行? 我试图保持它的MCVE,但我不想留下任何重要的东西。 "use strict"; function Grid(x, y) { var iRow, iColumn, rRow; this.cells = []; for(iRow = 0 ; iRow < x ; iRow++) { rRow = []; for(iColumn = 0 ; iColumn < y ; iColumn++) { rRow.push(" "); } this.cells.push(rRow); } } Grid.prototype.mark […]

使用Nodejs(fs)来访问inputtypes为file的文件

我无法读取不同位置的文件(Node项目目录除外)。 我需要读取一个私钥文件(可能位于文件系统的任何位置),并通过sftp传输一些yaml / yml文件(也可能位于任何位置)。 这些文件在一个文件input字段中select,该字段通过我的index.js(在Node中)的post方法访问。 问题是当我试图读取文件时,我得到一个文件不存在的错误,特别是因为目录默认为Node项目目录。 例如: d:/path/到/节点/项目 d:/这/是/在/的/ keyis 它会尝试阅读这个文件: d:/path/到/节点/项目/ keyis 我不知道为什么我只能得到文件名。 我知道接收整个path是一个安全风险,但我需要的path,即使它不是在任何阶段打印。 这是html表单的代码: <form id="file-upload" name="uploadform" method="post" action="/upload" onsubmit="update()"> <input type='text' id='username' class="btn btn-lg btn-default" name='username' placeholder='Enter Username' style="color:#000"><br> <h3>Select Key:</h3><input type='file' id='key-select' name='keySelect'><br> <h3>Select Yaml:</h3><input type="file" id="file-select" name="yamlfiles[]" multiple accept=".yml, .yaml"/><br> <button type="submit" class="btn btn-lg btn-default" id="upload">Upload Data</button> </form> 然后在index.js中: router.post('/upload', […]

什么是防止node-mysql中的SQL注入的最佳实践?

关于这个主题已经有了一些讨论(例如, 在Node.js中阻止SQL注入 ),但是没有明确的清晰度或深入的讨论,更不用说在任何地方都有很好的文档了。 node-mysql文档讨论防止SQL注入和一些转义函数。 但是,目前还不清楚这些函数如何防止SQL注入。 手册说“string安全地逃脱了”。 没有更多…是仅限于逃脱一些字符? 在node-mysql中似乎还有其他一些与connection.escape和pool.escape中的函数相同的函数,并且再次强调了这些函数用于防止SQL注入。 在node-mysql中似乎也不支持真正的准备语句。 这个计划和文件再次不清楚。 Node-mysql显然是node.js环境中非常受欢迎的模块,至less在我有限的经验中是相当稳定的。 什么是防止在node-mysql中进行SQL注入的最佳实践?

Nodejs:如何从键盘接受文本input,并将其存储到JavaScript中的variables?

我只想简单地从键盘读取文本并将其存储到variables中。 因此对于: var color = 'blue' 我希望用户提供来自键盘的颜色的input。 谢谢!

将stdoutconfiguration到node.js中另一个进程的stdin

我是node.js的新手,并试图在一行中执行两个进程,第一个进程的stdout传送到第二个stdin。 然后第二个进程的stdout应该作为对URL请求的响应传递给variablesres。 代码在这里。 其中一部分是由别人写的,所以也许我有误解: var sox = spawn("sox", soxArgs) var rubberband = spawn("rubberband", rubberbandArgs) sox.stdout.pipe(rubberband.stdin) rubberband.stdout.pipe(res) #won't send to res anything, why? #rubberband.stdin.pipe(res) won't send to res anything, either! #sox.stdout.pipe(res) will work just fine sox.stdin.write(data) sox.stdin.end() #the actual sox process will not execute until sox.stdin is filled with data..? 任何帮助,将不胜感激! 我花了几个小时看着这个!

用户input – Javascript节点js

我是新来js编程和stackoverflow,我有一个学校作业,我必须做一个parsing器vcards(parsing器工作正常,我可以提取所有我需要的信息),但在这个parsing器,我必须检查该联系人有两个以上的电话号码,如果他们这样做,他们必须select最多两个电话号码。 为此我做了这个function: function checkPhone() { //compter le nombre de numéro par contact j for (i = 1; i < nbrContact; i++) { var count = 0; //count phone numbers for one contact for (u = 0; u < nbrPhones; u++) { if (phoneOf(i)[u] != undefined) { count++; } } //if a contact has more then […]

NodeJS Multipart / form-data与数组

我在使用enctype multipart/form-data和发送具有相同名称的input作为数组时遇到了一些麻烦。 我似乎只能得到一个上传的图像或arraysinput,但不能同时… 例如,我有这样的forms: <form method="post" action="/test"> <input name="testinput" value="valueA"> <input name="testinput" value="valueB"> <input type="file" name="fileattachment"> <input type="submit" value="Submit"> </form> 如果我将表单的enctype设置为multipart/form-data ,如下所示: <form method="post" action="/test" enctype="multipart/form-data"> 我最终在我的NodeJS应用程序中收到'fileattachment'就好了,但是我只获得'testinput'的最后一个值,就像这样: //req.body //— { testinput: 'valueB' // I'm missing valueA! } //req.files //— { fileattachment: { name: 'biglogo.png', data: <Buffer 89 … >, encoding: '7bit', mimetype: 'image/png', mv: [Function] […]

节点js – 如何在节点js中等待用户input的同时暂停后续代码行的执行

我是新来的node.js和飞行中学习。 我已经写了一个代码来提示从CLI CLIinput超时。 问题在于,在等待用户input时,后续的代码行被执行,而不是暂停。 我如何在节点中实现这一点。 以下是我的代码 var readline = require('readline'); var rl = readline.createInterface({ input: process.stdin, output: process.stdout }); waitForUserInput = function (timeout) { var timer = setTimeout(function () { console.log("Process Resumed.."); rl.close(); }, timeout); rl.question("Press Enter to Continue..!!", function () { console.log("Process Resumed.."); clearTimeout(timer); rl.close(); });} 方法调用是 waitForUserInput(5000); 截至目前,如果我做一个console.log(“你好”); 输出是 过程已暂停。 按Enter键继续..! 你好 只有在用户input或超时后才需要console.log消息。

同时键盘input(对angular线游戏移动)

我正在Node上angular色需要对angular移动的2D游戏。 这是一个纯粹在Node环境中自上而下的基于文本的游戏(没有浏览器,所以我没有很好的keydown / keyup事件)。 我正在使用按键库来读取用户input,但是我不知道如何一次捕获两个键来引起对angular线移动(例如向下箭头和向右箭头)。 这里是我现在的水平和垂直运动的代码: game = new Game() game.print() keypress(process.stdin) process.stdin.setRawMode(true) process.stdin.resume() process.stdin.on('keypress', (ch, key) -> return unless key return process.stdin.pause() if key.ctrl and key.name is 'c' player = game.player switch key.name when 'up' if key.shift then player.turnUp() else player.moveUp() when 'right' if key.shift then player.turnRight() else player.moveRight() when 'down' if key.shift then […]

用户inputnode.js

我有以下Node.js代码行为奇怪: #!/usr/bin/env node "use strict"; var readline = require('readline'); var rl = readline.createInterface({ input: process.stdin, output: process.stdout }); function input(prompt) { rl.question(prompt, function (x) { rl.close(); console.log("debug: " + x); return x; }); } function main() { var n = input("Number: "); // console.log("value: " + n); // problematic line } main(); 我想模仿Python的raw_input ,即从用户读取一行。 显示提示后,应该阻止程序,直到用户按Enter键。 […]