我想为我的一条路线发送简单的html而不是json响应.我尝试设置响应的contentType和header属性,但它似乎没有在标题中设置contentType(浏览器尝试下载文件而不是渲染它).
res.contentType = 'text/html';
res.header('Content-Type','text/html');
return res.send('<html><body>hello</body></html>');
Run Code Online (Sandbox Code Playgroud) 我有一个使用node.js和node-restify构建的restful API.我正处于必须保护它的部分.显然,很容易找到如何使用OAuth 2.0作为客户端,但很难找到如何设置提供程序.我想我的谷歌技能不像以前那么好.
有人能指出我从哪里开始?节点是否有基本的OAuth 2.0服务器提供程序库?
如果需要的话我创建自己的库没有问题,但我查看了规范,并且它是一个规范,看起来过于复杂.我认为会有某种教程,网络广播或"你好世界"风格的项目在我身上打破了它.
谢谢你的想法.
我已经用咖啡写了一个节点restify服务器,我似乎无法让它运行.
部署时我收到以下错误:
等待应用程序端口(8080)变得可用...
之后我得到以下错误
应用程序'appname'无法启动(端口8080不可用)
如果coffeescript似乎是问题,那么就有一项工作.我不想改回js.
我的服务器代码是:
restify = require 'restify'
Bunyan = require 'bunyan'
server = restify.createServer
name: 'APPNAME'
version: '0.0.1'
log: Bunyan.createLogger
name: 'api'
serializers:
req: ()->
return "bad"
# Usercontroller.access calls a function to process the request
server.post '/user/access', UserController.access
server = create.createServer()
server.listen server_port, ->
console.log "Http server listening on #{server_port}"
require('./document')(server.router.mounts, 'restify')
return
Run Code Online (Sandbox Code Playgroud) 我如何使用NodeJS的Restify来管理我的Restful服务器构建的所有错误?例如内部错误,数据库错误,验证,必需的参数,未找到,athorizeds ...和uncaughtException并返回自定义响应浏览器?
我如何设计控制器之间的数据和错误份额?
谢谢
嗨我有restify.io的路由问题
似乎restify不像"?"express.js那样支持可选参数.
server.get('/users',function(req,res,next){});
server.get('/users/:id',function(req,res,next{});
// I even tried server.get('/users/',function(req,res,next){});
Run Code Online (Sandbox Code Playgroud)
所以当我跑步时,一切都按预期运作
http://localhost/users
Run Code Online (Sandbox Code Playgroud)
这显示了我的所有用户
http://localhost/users/1
Run Code Online (Sandbox Code Playgroud)
它显示id为1的用户
http://localhost/users/ //(note trailing slash)
Run Code Online (Sandbox Code Playgroud)
因找不到资源而失败,因为这个被解释为空参数而不是路由#1
我不想检查每个空参数并重定向或传递给下一个...
这似乎是一个普遍的事情,也应该击中其他人...所以你有什么看法,没有得到404的网址中的训练斜线
我正在为使用NodeJS,Restify和PassportJS进行身份验证的SPA构建REST后端.除了最后一步之外,一切都正常工作,即将客户端从后端/ login/facebook/callback重定向到应用程序的主页.
我在网上搜索过,发现了很多ExpressJS的答案,但对Node-Restify没什么用处.我已经设法获取了一些代码片段,这就是我现在正在尝试的内容:
app.get('/api/v1/login/facebook/cb', passport.authenticate('facebook', { scope: 'email' }), function(req, res) {
req.session.user = req.user._id;
res.header('Location', '/#/home');
res.send();
});
Run Code Online (Sandbox Code Playgroud)
发送响应但不包括位置标题,并向客户端显示白屏.如何使用Node-Restify API进行正确的重定向?
我正在使用restify构建API,我已经习惯了express.有没有办法restify在控制台中记录每个请求,就像express有app.use(express.logger('dev'))?
我有一个建立在restify上的应用程序.我没有内存泄漏,但是我在清除gc期间有大量的内存增长,然后是重量级标记扫描gc并清理内存.
它会影响我的应用程序的性能.
[2268] 266859 ms: Scavenge 61.5 (119.5) -> 46.0 (119.5) MB, 2.2 ms [allocation failure].
[2268] 267084 ms: Scavenge 63.7 (119.5) -> 48.3 (119.5) MB, 6.2 ms [allocation failure].
[2268] 267289 ms: Scavenge 66.0 (119.5) -> 50.6 (119.5) MB, 2.6 ms [allocation failure].
[2268] 267504 ms: Scavenge 68.3 (119.5) -> 52.8 (119.5) MB, 2.4 ms [allocation failure].
[2268] 267700 ms: Scavenge 70.5 (119.5) -> 55.1 (119.5) MB, 2.7 ms [allocation failure].
....
[2268] 275913 ms: Scavenge 154.2 (183.5) -> …Run Code Online (Sandbox Code Playgroud) 我一直在使用Restify一段时间了.我遇到了一些缺乏的代码,next()我发现我不确定我是否完全理解为什么 next()应该被调用res.send().我明白为什么会在中间件情况下使用它,但对于正常的路由,为什么需要它呢?例如:
server.get('/a/:something/',function(req,res,next) {
res.send('ok');
});
Run Code Online (Sandbox Code Playgroud)
VS
server.get('/b/:something/',function(req,res,next) {
res.send('ok');
return next();
});
Run Code Online (Sandbox Code Playgroud)
如果return next();没有代码,它似乎不会导致错误,并从我能看到的东西开始工作.
设置填充当前请求ID的子bunyan记录器,以及您定义的任何其他参数.
server.use(restify.requestLogger());
Run Code Online (Sandbox Code Playgroud)
注册插件不会记录请求.
node.js ×10
restify ×10
bunyan ×1
coffeescript ×1
express ×1
http-headers ×1
linux ×1
memory ×1
oauth-2.0 ×1
openshift ×1
passport.js ×1
routing ×1