- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在示例 REST API 中的 POST 请求时遇到了一些小问题。
我只有四个路由的四个回调方法:
app.get '/tasks', task.getAll
app.get '/tasks/done', task.getDone
app.get '/tasks/notdone', task.withoutDone
app.post '/tasks', task.newTask
和:
模型=需要'../models/models.js'
exports.getAll = (req, res, next) ->
models.Task.find {}, 'title description, done', (err, tasks) ->
if err then err
res.send tasks
do next
exports.getDone = (req, res, next) ->
models.Task.find {done: true}, (err, tasks) ->
if err then err
res.send tasks
do next
exports.withoutDone = (req, res, next) ->
models.Task.find {done: false}, (err, tasks) ->
if err then err
res.send tasks
do next
exports.newTask = (req, res, next) ->
if req.params.title is undefined
return next new restify.InvalidArgumentError 'Title is needed'
taskData =
title: req.params.title
description: req.params.description
done: req.params.done
task = new Task(taskData)
task.save (err, data) ->
if err
return next new restify.InvalidArgumentError(JSON.stringify(error.errors))
else
res.json(data)
res.send 201, task
所以,你可以找到代码here以独特的要点。
我运行时的跟踪
curl -i -X POST -d '{"title": "hello world", description: "lorem ipsum dolor amet", "done": true}' http://localhost:8080/tasks
在响应中给我返回 500 个内部头:
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 59
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, Api-Version, Response-Time
Access-Control-Allow-Methods: GET, POST
Access-Control-Expose-Headers: Api-Version, Request-Id, Response-Time
Connection: Keep-Alive
Content-MD5: QFnWTtR6KfhLtGqWpGWZog==
Date: Mon, 17 Mar 2014 15:12:00 GMT
Server: task-API
Request-Id: 7d71a510-ade6-11e3-bd80-292785b198e2
Response-Time: 1
{"code":"InternalError","message":"restify is not defined"}
最佳答案
Restify在错误处理方面与expressjs有类似的设计。它吞下未捕获的异常并将它们以 JSON 格式发送回浏览器并伴随 HTTP 500 错误,而不是在控制台打印它们。
消息“restify is not Define”通常意味着您忘记在脚本中的某个位置调用 varrestify = require('restify');
。
您还可以使用以下代码片段在控制台上查明错误的位置:
server.on('uncaughtException', function (req, res, route, err) {
console.log('uncaughtException', err.stack);
});
关于node.js - POST 请求在 Restify 中不起作用,出现 500 内部服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22462895/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!