Tag: 表示

在Async瀑布中为每个具有Mysql连接池的函数

我已经按照这个教程 ,现在我正在build立一个连接到一个Mysql数据库与一个工作连接池的Express js应用程序; 然后我使用Async.js在我的服务器中的瀑布指令。 我只是重构我的代码避免callback地狱。 我很困惑,因为我有一个嵌套的forEach函数(callback地狱的情况),它完全获得我的MySql连接的工作代码,现在没有任何工作。 问题:收到GET请求后,直到“Action Two”打印。 这是我目前的MWE : apiRoutes.get('/endpoint', function(req, res) { async.waterfall([ function actionOne(callback){ connection.acquire(function(err, con){ con.query( myQuery , function(err, result){ con.release(); if(err){ console.log(err); callback(err); } else { console.log("Action One Success"); callback(null, result); } }); }); }, function actionTwo(list, callback){ console.log("Action Two"); var arr = []; list.forEach(function(item, index, array){ item.arr = []; […]

express-validator / node-validator:如何validation该属性是否存在,并且应该存在

有没有validation,如: req.checkBody('property', 'should be present').isPresent(); 价值本身并不重要。 现在我使用这个解决scheme: .isLength() 更新 – .isLength()是一个不好的解决scheme,因为它testing的值是一个string。 – 由于JSON.stringify方法的原因,您无法将POST值作为“未定义”从浏览器发送,从而忽略了这些属性。 所以validation反对!== undefined应该足够了。

使用Express.js提供纯文本SVG(与Cheerio.js相关的解决scheme)

我正在尝试在通过Express.js发送之前处理SVG。 我有以下代码: app.get("/iconic/styles/:style/:base/:icon", function (req, res) { var style = req.params.style; var base = req.params.base; var icon = req.params.icon; var iconPath = path.join(iconFolderRoot, style, icon); svgProcessor(iconPath, base).then(function (svg) { //console.log(svg); // SO: See the example output posted below res.header("Content-Type","image/svg+xml"); //res.send(new Buffer(svg, 'binary')); // No difference res.send(svg); }).catch(function (err) { res.status(404).send("Error" + JSON.stringify(err, null, " ")); […]

使用Multer上传文件,并在parsing并上传到数据库之前将其暂时存储在内存中

我对编程相对来说比较新,但是我会尽可能简化。 我正在使用multer来尝试上传一个XML文件。 我有一个Node Express服务器,我也使用React .jsx。 上传后,我将parsing该文件数据并将其发布到Postgres数据库。 所以考虑到这一点,我不写上传的文件到磁盘,我只是在parsing之前使用multer的缓冲区属性存储它。 我有一个使用jQuery进行表单提交的小型testing项目,但是我没有在这里使用jQuery,而且我不确定表单提交如何在React中真正起作用,或者甚至是这个问题。 我只包括与使用multer直接相关的代码。 其他一切工作正常。 这是我的表单: <form id="uploadForm" ref="form" encType="multipart/form-data" method="post" action="/upload" onSubmit={this.handleSubmit} > <input type="file" name="songlist" /> <input type="submit" value="UploadFile" name="submit" /> </form> 这是我的表单提交处理在同一个组件。 onSubmit会自动提交表单还是我应该在这里做别的事情? handleSubmit(event) { console.log('hey'); event.preventDefault(); this.props.postSongs(); }, postSongs()调用我的服务器端路由: postSongs() { axios.post("/upload") .then(() => { console.log('success') }) .catch((err) => { console.error(err); }); }, 而在我的服务器端路由,我正在发出请求,应该得到该文件存储在multer的内存中: const multer […]

无需身份validation,使用jwt保护api密钥

有没有什么办法可以通过jwt或其他任何方法来保护api响应,而不需要身份validation(login页面),这样只有主站点才能访问api。 我在google上看到的所有方法和教程都基于jwt的login系统。 作为一个例子,如果我有像restapi: router.get('/api/posts', (req, res) => { var body = … // get some via database res.json(body); }) 然后我只想通过我的网站消费这个: example.com 。 而最重要的是没有身份validation(login系统)

在Express.js应用程序中自动添加/重命名文件夹

我正在尝试创build一个简单的Node.js Express网站,并运行以下命令: cd node npm install pug express express project_name cd project_name && npm install npm start 运行时,它将创build/public文件夹以及/images , /javascripts , stylesheets 。 有没有办法,我可以自动replace这些/img , /js , css当我创build它? 我只是试图让我创build一个简单的Express服务器的一个快速的命令集。

从JSON文件中删除JSON对象

我正在尝试编写一个从json文件中删除对象的函数。 json文件被格式化为一组用户,如下所示: { "users": [ { "username": "test1", "answers": [ "Red", "Blue", "Yellow", "Green" ] }, { "username": "test2", "answers": [ "1", "2", "3", "4" ] } ] } 我写的代码由于某种原因而不起作用。 我希望能够将一个variables“test2”传递给函数,然后让该特定用户从对象中移除,包括他们的答案。 var removeUser = user; var data = fs.readFileSync('results.json'); var json = JSON.parse(data); var users = json.users; delete users.users[user]; fs.writeFileSync('results.json', JSON.stringify(json, null, 2));

原型模式创build新的属性

我试图分享socket.io到我的财产,不知道为什么它不工作… 我的第一个文件MessageController.js : function MessageController() { }; MessageController.prototype.io = ""; MessageController.prototype.sendMessageAction = function (req, res) { console.log(this.io); } module.exports = new MessageController(); 在另一个文件router.js我有这样的: var messageController = require('./controllers/MessageController'); module.exports = function (expressApp, router, io) { console.log(io); messageController.io = io; router.post('/dashboard/message', messageController.sendMessageAction); return router; }; 以下是我需要router.js : module.exports = function (expressApp, io) { var router = system.express.Router(); […]

使用强大的节点file upload不起作用

我们希望实现一个function,将多个file upload到ExpressJS服务器,并通过ajax调用返回所有独特的URL。 以下是我前端的示例代码: var formData = new FormData(); for (var i = 0; i < nameId.length; i++) { if($(nameId[i])[0].files[0]){ formData.append(nameId[i], $(nameId[i])[0].files[0], $(nameId[i])[0].files[0].name); } } $.ajax({ url: '/upload-files', type: 'POST', data: formData, processData: false, contentType: false, success: function(data){ console.log('upload successful!'); console.log(data); } }); 在我们的路由器中,我们有下面的代码片段来接受请求并存储文件: router.post('/upload-files',function(req, res, next){ var form = new formidable.IncomingForm(); form.multiples = true; form.uploadDir […]

如何使用node.js将当前正在下载的videostream传输到html5播放器?

我目前正在下载一个项目,下载一个洪stream,而下载时,它stream到一个HTML5video播放器。 我的项目的限制不让我使用peerflix或webtorrent。 我目前正在使用torrent-stream模块。 我的代码是在node.js和帕格。 具体如下: server.js var uri = 'magnet:?xt=urn:btih:11a2ac68a11634e980f265cb1433c599d017a759'; var engine = torrentStream(uri); let engineGo = function () { return new Promise(function (resolve, reject) { var engine = torrentStream(uri); engine.on('ready', function() { engine.files.forEach(function(file) { if (file.name.substr(file.name.length – 3) == 'mkv' || file.name.substr(file.name.length – 3) == 'mp4') { console.log('filename:', file.name); var stream = file.createReadStream(); var […]