Tag: rest

Node.js使用socket.io来调整

是否有可能在像express和socket.io一样的端口上运行socket.io&restify? 我只是喜欢这个,但没有奏效 # server.coffee restify = require 'restify' socket = require 'socket.io' server = restify.createServer() io = socket.listen server server.listen 1337 当我尝试连接到socket.io时: GET http://localhost:1337/socket.io/socket.io.js 404 (Not Found)

HBase:节俭vsrestperformance

我知道在HBO上有一些关于REST和Thrift的StackOverflow的文章,但是我想关注一下性能问题。 我一直在使用Node.js中的以下库来连接到一个HBase实例: node-hbase: https : //github.com/wdavidw/node-hbase 节点 – 节俭: https : //github.com/apache/thrift/tree/trunk/lib/nodejs 在弄清楚为什么我不能得到Thrift网关的响应后,我终于得到了两个脚本运行,结果如下(每个输出相当于1000个操作完成): ┌─[mt@Marcs-MacBook-Pro]─[~/Sources/node-hbase] └──╼ node hbase.js hbase-write: 99ms hbase-write: 3412ms hbase-write: 3854ms hbase-write: 3924ms hbase-write: 3808ms hbase-write: 9035ms hbase-read: 216ms hbase-read: 4676ms hbase-read: 3908ms hbase-read: 3498ms hbase-read: 4139ms hbase-read: 3781ms completed ┌─[mt@Marcs-MacBook-Pro]─[~/Sources/node-hbase] └──╼ node thrift.js hbase-write: 4ms hbase-write: 931ms hbase-write: 1061ms hbase-write: 988ms hbase-write: […]

我应该如何存储由RESTful API生成的令牌?

我已经构build了一个API来为login的用户生成身份validation令牌。此时,我还有一个用Node.JS编写的客户端应用程序。 当我使用用户证书从客户端应用程序向API发出请求时,我得到身份validation令牌:我应该如何将其存储在客户端应用程序中? 我不应该每次我想要API的请求时要求一个令牌,对吗? 我想把这个标记放入Cookie中,但我认为这不是最好的解决scheme。 你会推荐什么?

使用Angular.js和Node.js构build实时应用程序的更好方法是什么?

我是Angular.js和Node.js的初学者,但是我意识到有两种可能的方法来实现实时应用程序。 第一个是使用Socket.io,另一个是使用带有setInterval()函数的RESTful作为客户端解决scheme。 我使用两种替代方法构build了我的应用程序,但是我不知道为什么使用一个而不是另一个更好。 我的控制器使用Angular.js(Socket.io替代): function MyController($scope, socket) { socket.on('test', function(data){ $scope.data = data; console.log($scope.data); }); } 我的控制器使用Angular.js(RESTful替代): function MyController($scope, $http) { setInterval(function() { $http.get('/test.json') .success(function(data, status, headers, config) { $scope.data = data; console.log($scope.data); }); }, 1000); } 这些做事方式之间的区别是什么? 提前致谢!

Sequelize REST API生成器

我正在开发一个Nodejs应用程序,我的数据库是Postgres,而且我使用Sequelize作为我的ORM,因为它对迁移有很好的支持。 我正在寻找一个基于我定义的模式的良好的REST API生成器。 我面临两个主要障碍,它们是生成器在创build关联API路由和缺乏ACL支持方面做得不好。 在关联的前面,我的模式有多个层次的关联,例如.. Student.hasMany(Courses); Courses.hasMany(Subjects); 所以理想情况下生成的REST API应该是这样的 /student/:student_id/course/:course_id/subject/:subjectId 我发现有几个项目正在这样做,但不完整。 https://github.com/sequelize/sequelize-restful – 很好,但没有ACL支持 https://www.npmjs.org/package/restizr – 处于alpha阶段,不会生成关联的API路由。 有没有支持这个模块?

Express不能使用PUT / DELETE方法。 出了什么问题?

好吧,所以我有一个简单的node.js / express.js / mongodb应用程序设置在这里与我的configuration如下。 var express = require('express'), mongoose = require('mongoose'); http = require('http'); var app = express(); app.configure(function(){ app.set('port', process.env.PORT || 3000); app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); //middleware stack app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(app.router); app.use(express.static(__dirname + "/public")); }); mongoose.connect("mongodb://localhost/hello"); 问题在于当我尝试做PUT或DELETE请求时。 我的表单很简单 <form method="POST" action="/users/#{user.name}"> <input type="hidden" name="_method" value="PUT"/> </form> 现在我的路由器用express .put()方法捕获路由 app.put('/users/:name', function(req, […]

使用Mongoose中的UUID作为ObjectID引用

我正在用Node.js,Express和MongoDB使用mongoose构build一个CRUD风格的REST服务。 该服务将允许已经存在的android应用程序的用户在线上传/同步他们各个数据库的内容。 现有应用程序的数据模型使用UUID(用Java生成)与较短的单调MongoDB样式_id字段冲突。 由于数据模型已经存在,并且被来自许多用户的数据填充,所以我无法将源数据转换为单调的MongoDB样式_id 。 这让我想到了两个选项:1)让Mongo / Mongoose(或者其他一些ODM)可以用完整的UUID代替单调的_id s,或者2)为mongoose模型添加一个uuid字段到_id领域,并打破这种做法的陷阱。 我试图select#1选项,并遇到ObjectID引用的问题。 我最初偶然发现了mongoose-uuid ,但不幸的是,这不能正常工作,因为它在创build新的Mongoose对象时覆盖了我明确设置的_id值。 潜入插件代码,它假定一个对象是新的(通过调用检查Mongoose的.isNew值),从而用新的uuid覆盖_id 。 由于在Mongo中创build新文档时我需要保留原始的uuid,所以这个插件不适合我。 接下来,我发现mongoose的创始人亚伦·赫克曼(Aaron Heckmann)在一个类似的话题上发表了一篇文章 。 这是有帮助的,但是我现在遇到了我不能让我的mongoose模式通过ObjectID相互引用的问题,因为他们在技术上现在使用String`_ids来引用对方。 架构示例: var mongoose = require('mongoose'); var uuid = require('node-uuid'); var Schema = mongoose.Schema; var trackPassSchema = new Schema({ _id: { type: String, default: function genUUID() { uuid.v1() }}, //Omitting other fields in snippet for simplicity vehicle: […]

如何从Expresspath映射中自动生成API文档?

我在nodejs + Express中开发了一个REST API,并且在README文件中同时logging了我的API,我想知道是否可以自动化它。 例如给出: app.get('/path/to', dosomething); app.post('/path/to/:somethingelse', scream); 我希望它自动生成这个 GET: /path/to dosomething POST: /path/to/:somethingelse scream

在Express.js中POST数据JSONvalidation

我正在使用Node.js和Express.js编写一个应用程序。 该应用程序有一个(小)REST API,然后是一个Web前端。 我使用MongoDb。 对于API,我倾向于POST数据到某个端点,然后进行处理或者其他操作,并将其转储到数据库中。 但是,我有一些数据库架构,我想强制执行。 什么是我的选项/最佳做法,强制执行我的POST数据的特定结构,所以我知道某些领域是目前和特定types。 如果这可以在中间件级别完成,那将是很好的,但这不是必需的。 人们通常为validation/模式执行做什么?

Node.js / Express / Mocha / Supertest Rest API – 空请求正文

我到处寻找解决办法。 我唯一发现的是一个没有回答的post。 我很抱歉,如果我忽略了一些东西。 问题是,当我尝试在/createQuestion API中获取POST值时,正文为空/未定义。 我得到这样的错误Cannot read proprety 'question' of undefined来自API Cannot read proprety 'question' of undefined 。 Express API: app.post("/createQuestion", function(req, res) { var questionType = req.body.question.type; var questionText = req.body.question.text; var questionDuringClass = req.body.question.duringClass; // Do a bunch of stuff res.send(response); }); 考试: var should = require('should'); var assert = require('assert'); var request […]