Tag: rest

最好的方法来转发上传stream

我正在编写用NodeJS编写的REST服务器脚本。 此脚本允许用户执行POST请求上传文件。 由于我的服务器不负责存储文件,并由另一个也是REST服务器的远程服务器负责,我喜欢将file uploadstream转发/redirect到该远程服务器。 什么是最好的方法来做到这一点? 我应该缓冲stream,并等待,直到我收到文件的全部stream式传输到远程服务器之前? 要么 我应该只是将数据块传输到远程服务器,因为我收到它们? 我试着用我的上传路线pipe道, req.pipe(request.post(connection).pipe(res) 但是我从远程服务器收到错误 – “连接已被客户端取消”。 要么 是否有可能将传入的上传streamredirect到远程服务器,以便我的脚本不会是中间人? 谢谢

维护一个API Rest的多个版本

我有一个快速APIrest,这是由iOS客户端使用。 有时我必须对某些端点进行更改(重大更改),我将发布一个新的iOS应用程序,但如果客户端正在运行应用程序,并且我部署了新的后端版本,则可能不会发生所有用户都更新客户端事件。 如何维护后端的多个版本? 在代码中没有复杂的规则的情况下,做什么是一个好方法 如果我执行不同的多个实例的基础和响应每个客户端与正确的版本,现在处理数据库? 如何@MikeBrant先生我会减less范围 我在用着 节点 performance Postgres的 我没有使用像sailjs或loopback的框架

parsingREST API vs Parse JavaScript SDK

我们正在build设一个networking和移动聊天应用程序。 用例是消费者可以使用Android移动应用程序与我们的客户服务聊天。 我们的后端团队将回复使用Web应用程序的用户。 Web应用程序还将具有将邮件上载到parsing数据库的function,该parsing数据库将在用户新闻传送中可见,查询parsing数据库中的项目/事务并将新产品SKU上载到数据库。 对于聊天,我们将使用像Layer / Pubnub / Socket.IO一样的服务以及Parse作为数据库。 这个架构会运作良好吗? 另外,对于Web应用程序,我们是否应该使用本地Parse JS SDK ? 或使用Parse REST API开发Node.JS / Express.JS应用程序?

在AWS上使用弹性beanstalk部署Nodejs REST API – 错误找不到自定义模块

我写了我的第一个nodejs应用程序。 它在我的MacBook上工作正常,但是当我尝试在AWS弹性beanstalk上部署它时,出现以下错误。 /var/log/nodejs/nodejs.log at Function.Module._load (module.js:310:12) at Module.require (module.js:365:17) module.js:338 throw err; ^ Error: Cannot find module '**./routes/userprofile**' at Function.Module._resolveFilename (module.js:336:15) at Function.Module._load (module.js:278:25) at Module.require (module.js:365:17) at require (module.js:384:17) at Object.<anonymous> (/var/app/current/main.js:7:18) at Module._compile (module.js:460:26) at Object.Module._extensions..js (module.js:478:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Module.require (module.js:365:17) 看来nodejs不能解决我的自定义模块userprofile位于Routes目录下的path。我已经尝试将userprofile.js移动到根,但它仍然不能解决这个问题。 这是加载所有模块的main.js中的代码 /加载我们的模块 var express = require('express'); […]

在使用基于Cookie的基于REST的后端时在AngularJS中进行身份validation?

我正在使用AngularJS,NodeJS和一个应用程序服务器,它为我提供了所有基于REST的服务。 典型的架构如下: 现在的事情是我把cookie传递给Fro来pipe理请求和响应。 这有助于我维持会议。 但是我怀疑这不是pipe理应用程序的authentication和授权的正确方法。 我想build议如何最好地维护基于REST的服务器为我提供cookie的会话(JSESSIONID)。 请指出参考,并让我知道如果我做错了什么。 注:我读了响应代码,以了解用户是否login。 请帮忙。

Nodejs + mongodb中REST API的自定义URL

所以我在nodejs api里有下面的mongoose模式: var profileschema = new mongoose.Schema({ name: { type: String }, surname: { type: String }, id: { type: String } }); 以下路线: var profile = express.Router(); profile.route('/profile') .get(profilecrtl.findAllProfile) .post(profilecrtl.addProfile); 我可以制作其他路线,如/ profile /:id ,他们完美的工作。 但我想生成自定义的url,取决于用户所要求的参数和想要的方法,而不必编码每个案例。 例如: / profile?id = 1234应该给我有关id = 1234configuration文件的完整信息 { id: '1234', name: 'john' surname: 'wicked' } / profile?id = 1234&name […]

保护REST未经身份validation的帐户创build

我正在devise一个REST API,而且我碰到了一个奇怪的问题。 这个API的99%是安全的,但有一些function需要公开访问。 这些涉及帐户创build和初始密码设置。 一旦他们有凭据,他们可以访问其余的API。 允许用户通过registry单创build新帐户的端点是未经validation的。 保护这个端点并不是真的可行,因为我在nodejs上使用了AngularJS,并通过AJAX调用对我的API进行了狗食。 这意味着我无法在任何地方隐藏凭据来访问AccountCreation端点。 目前,我有networkingforms对另一个端点进行AJAX调用,并创build一个表示forms的标记是有效的。 一旦提交该令牌被validation,然后从数据库中删除。 然而,这个令牌端点在代码中显然是可见的,所以在那里没有太多的安全性。 电子邮件validation用于“激活”帐户,然后给用户一次性链接以设置其初始密码,该初始密码也驻留在未经authentication的端点上(但要求在电子邮件中发送令牌)。 我想我的担心是有人发垃圾邮件“CreateAccount”端点,并做一堆帐户。 实际上,我猜他们也可以简单地通过networking表单来做到这一点。 这是一个有效的安全问题吗? 大多数地方如何处理未经身份validation的帐户创buildnetworking表单? 编辑:最终的应用程序将通过https运行

用Frisby.js进行rest apitesting

我有以下testing,写与Frisby.js : var frisby = require('frisby'); var CONSTS = { server: 'http://localhost:8000', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' } }; frisby.create('Ensure we are dealing with a teapot') .get(CONSTS.server + '/isAlive', {headers: CONSTS.headers}, {json: true}) .timeout(10000) .expectStatus(200) .toss(); 我得到这个结果: Failures: 1) Frisby Test: Ensure we are dealing with a teapot [ GET http://localhost:8000/isAlive ] Message: Expected […]

使用LoopBack和StrongLoop的MongoDB REST API返回没有结果?

我正在尝试使用LoopBack和StrongLoop为MongoDB创buildREST API。 这是我的项目https://github.com/ackuser/slc-rest-api-mongodb-sample 这不是一个关系数据库,所以我需要使用“ 从非结构化数据创build模型 ”从我的理解 请参阅https://docs.strongloop.com/display/public/LB/Creating+models+from+unstructured+data 直到这里,它是好的,但如果我通过StrongLoop弧去创build一个模型 http://127.0.0.1:3000/explorer 我总是得到与id有关的错误(无论我如何将id添加到我的模型中),并且由于id的问题原因,我无法获取任何JSON。 我很关心这个问题,我读到的是你可以修复它: 通过实例内省使用 buildModelFromInstance() https://docs.strongloop.com/display/LB1/Creating+models+by+instance+introspection 或者类似的东西 var ds = app.dataSources.db; MyModel = ds.createModel('mymodel', { _id: { type: ds.ObjectID, id: true } }); https://docs.strongloop.com/display/public/LB/Creating+models+from+unstructured+data 要么 MyModel = ds.createModel('mymodel', { _id: { type: Number, id: true } }); https://docs.strongloop.com/display/public/LB/MongoDB+connector#MongoDBconnector-AboutMongoDB_idfield 注意 :它是以编程方式完成的,所以诚实地说,我不明白我之前提到的代码和StrongLoop Arc之间的连接,以及它们如何相互连接来创build资源pipe理器API。 事实上,我无法正常工作 https://docs.strongloop.com/display/public/LB/Creating+models 任何人都可以向我解释用LoopBack和StrongLoop创build和公开MongoDB REST API的逻辑步骤吗? 或者至less请告诉我我做错了什么 […]

如何在Express POSTpath中使用Mongoose保存方法

我是Express和Node的新手,有一个我不明白的问题。 我已经定义了两个不同的Express路由来为两个不同的Mongoose数据模型发送POST请求。 一个正常工作,正常返回,另一个在Heroku日志中返回204的状态,然后超时,就像保存甚至不执行… 这里是“牦牛”模型和相关的POST路线,它保存对象并将预期结果返回给我的ANgular客户端: 模型定义: var mongoose = require('mongoose'); var Schema = mongoose.Schema; var YakSchema = new Schema({ catagory: String, loc: { type: [Number], // [<longitude>, <latitude>] index: '2d' // create the geospatial index }, yakName:String, yakDescription:String, yakPhone:String, yakOwner:String }); module.exports = mongoose.model('Yak', YakSchema); 和邮政路线 router.route('/yaks') .post(function(req, res) { var yak = new Yak(); //First, […]