Tag: 后端

为什么Mongoose用_idreplace对象中的键/值对?

我正在用Node.js,Express.js和Mongoose创build我的第一个后端项目。 我有一个用户,与一个股票对象列表[{symbol: amount}] 。 当用户想要购买一只股票时,他们会发送一个POST请求,其中包含股票,金额和动词,在这种情况下是“买入”。 在邮政中,我从请求正文获取股票和金额,并将其添加到用户的股票列表中。 一个请求 {stock: 'F', amount: '2', verb: 'buy'} 应该加上 {'F': '2'} 到用户的股票。 问题是当我创build和推动股票 stockObject[stock] = amount; user.stocks.push(stockObject); user.stocks变成[{ _id: 54be8739dd63f94c0e000004 }]而不是[{'F': '2'}] ,但是当我 stockObject={'symbol':stock, 'amount': amount} 并推动我会得到 [{'symbol': 'F', 'amount': '2', _id: 54be8739dd63f94c0e000004}] 为什么Mongoose会在第一种情况下replace我的数据,但保留在第二种情况下? var UserSchema = new Schema({ id: String, stocks: [{ symbol: String, amount: Number }] }); router.route('/user/:user_id/action') […]

在后端录制HTML5 WebGL的video

对于不支持HTML5 WebGL的浏览器,是否可以录制HTML5 WebGLvideo播放的video(包括声音)? 例如,是否有可能在后台录制SeriouslyJS(http://seriouslyjs.org/)的内容,这种格式将被大多数浏览器/设备所接受? 我已经做了很多后端的东西,但从来没有任何涉及后端GUI的东西…我感谢任何人都可以给我的帮助。

在Node.js中支持MySQL的ACL

我正在使用Node.js与MySQL。 在npm中是否有一个支持node.js和MySQL的ACL库? 我没有find类似的问题在stackoverflow的答案。

如何从数组中插入值到选定的JSON键

我有这个数组: [test,usera,test,userb,test,userc,test,userd] 而这个JSON: { "data": [ { "email": "testusera@abc.com", "mobile": "9881880455", "panCardNo": "ABCD014141", "city": "Mumbai" }, { "email": "testusera@abc.com", "mobile": "9881880455", "panCardNo": "ABCD014141", "city": "Mumbai" } ] } 我试图将键值对添加到现有的对象,即“姓氏”:“从数组中的值” for(var i=0; i<importedJson.data.length;i++) { for(var f=1;f<=arrFirstLast.length-1;f+2) { importedJson.data[i].lastName = arrFirstLast[f]; } } 预期的Json: { "data": [ { "lastname": "usera", "email": "testusera@abc.com", "mobile": "9881880455", "panCardNo": "ABCD014141", "city": […]

哪个NodeJS框架适合为Nativescript应用程序(基于JS)构build完整的后端?

我正在使用我的JS知识在Nativescript中构build原生移动应用程序。 所以,我虽然要切换到其他Nodejs框架。 我的应用程序的后端要求是: 纯JS 完成后端逻辑(即控制器) 连接到一个MongoDB数据库 REST风格 非前端依赖性 非DOM依赖性 应该是一个框架,它为后台开发人员(相对)缺乏经验的后端开发人员提供了坚实有效的后端(除了纯Java的基础知识和经验) 我正在考虑使用我现有的Meteor知识,但是我不能实现任何现有的使用ddp和websockets的实验 。 我正在考虑尝试的一些可能性: 环回 Total.js Hapi.js Sail.js 我没有任何基于JS的框架,无论是基于NodeJS还是没有 我也打开了一个REST API的解决scheme ,暴露Meteor的后端,只要不需要ddp就可以使用(我不是很清楚什么是使用meteor时不使用DDP的限制) 任何具体的build议,最终会避免我尝试所有这些build议,然后才发现它们不能与Nativescript一起使用或不满足我的要求?

meteor – 我可以先开发后端,后端完成后开发前端?

我们的团队为我们的项目开发了一个iOS和Android应用程序,而我们使用节点和socket.io作为后端。 我们想要移动到meteor,所以我们可以将Angular 2的前端与后端轻松连接起来。 但是我们想用Meteor重写后端,所以我们的应用程序可以使用它。 之后创build前端。 我的问题很简单,在Meteor前端和后端都是同时完成的? 或者我们可以先build立后端,然后在前端?

JSON宁静的服务安全

我目前正在构build一个Web应用程序,它已经完全分离了一个“前端”服务器与Lighttpd只服务于index.html和JavaScript等 Backbone.js等保持我的前端与我在Node.js中编写的web服务“后端”连接 后端是完全无状态的,通过http basic对每个请求进行身份validation,并运行SSL(https)。 我如何确保只有我的“后端”服务器上发生的连接来自Lighttpd“前端”服务器,而不是一些随机的黑客? 感谢帮助。

为各种用户重复执行服务器function

我有一个node.js应用程序,我正在实现一个自定义的SSOlogin系统。 它是如何工作的,它需要用户的GET参数(用户名,真实姓名和电子邮件)以及由我的另一台服务器上的API生成的签名。 我的代码应该做的是采取用户的url GET参数,连接它们,然后用私钥encryption它们。 然后,它将encryption结果与签名进行比较。 如果相等,则返回true,用户login。我的代码如下所示。 app.get('/', function(req, res) { if(!signedIn){ try{ var user = req.query.username; var name = req.query.realName; var email = req.query.email; var signature = req.query.signature; var encrypted = crypto.createHmac('sha256', config.privateKey).update(user + name + email).digest('hex'); if(encrypted == signature){ username = user; signedIn = true; res.sendFile(__dirname + '/view/index.html'); }else{ res.redirect("https://infinia.press/sso/login") } }catch(error){ res.redirect("https://infinia.press/sso/login") } […]

为什么我的Express.js后端的CORS设置不起作用?

我正在为我的Express.js后端设置CORS。 由于我有一个本地和远程版本的前端我想允许一些URLS访问到后端。 我曾尝试使用“*”和var cors = require('cors') app.use(cors())但我得到 当凭证标志为真时,不能在Access-Control-Allow-Origin中使用通配符。 我曾尝试使用cors()的dynamic设置,但没有示例如何使用Express的路线。 我现在试图创build我自己的白名单检查下面的代码,但现在我越来越 请求的资源上没有“Access-Control-Allow-Origin”标题。 原因' http:// localhost:5000 '因此不被允许访问。 该响应具有HTTP状态码500。 我究竟做错了什么? 更新:它看起来像if语句阻止添加标题,所以我试图删除它,看看res.header('Access-Control-Allow-Origin', req.get("origin")); 现在正在给我 凭证标志是'true',但是'Access-Control-Allow-Credentials'标头是''。 允许凭证必须是“真实的”。 var whiteList = { "http://localhost:5000": true, "https://example-url.herokuapp.com": true }; var allowCrossDomain = function(req, res, next) { if(whiteList[req.get('Origin')]){ res.header('Access-Control-Allow-Credentials', true); res.header('Access-Control-Allow-Origin', req.get('Origin')); res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS'); res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization, Content-Length, X-Requested-With, Origin, Accept'); next(); } }; […]

当我尝试提交HTML表单时显示错误“无法POST”

我也看到了同样的错误的其他问题,但没有一个答案似乎工作。 <!DOCTYPE html> <html> <body> <form action="http://127.0.0.1:8080/del" method="post"> First name: <input type="text" name="fname"><br> Last name: <input type="text" name="lname"><br> <input type="submit" value="Submit"> </form> <p>Click on the submit button, and the input will be sent to a page on the server called "http://127.0.0.1:8080/del".</p> </body> </html> server.js var express=require('express'); var body_parser=require('body-parser'); var request = require('request').defaults({json:true}); var app=express(); var […]