Tag: rest

快递不路由一些jQuery请求

我有一个恼人的问题。 我正在尝试构build一个简单的网站。 该网站使用一个API我build立使用nodejs和expression。 在开发API时,我经常用邮差检查function。 一切工作,仍然工作正常(使用邮递员)。 现在我开始在我的网站上工作。 第一个GET和POST工作正常。 (我尝试了一些轻量级的Ajax库,没有工作,只有jQuery似乎为我工作) 现在我正在尝试使用PUT动词来更新一个项目。 再次更新使用邮差工作正常。 但是尝试使用jQuery并不会引发正确的路由。 为了检查,我添加了一个简单的console.log,如果明确地使用了最后一个中间件,这个中间件在处理PUT的函数中也返回一个404 statuscode和一个console.log。 每次我使用jQuery来更新一个元素到404。如果我使用邮递员,我看到来自PUT函数的消息。 我的APIController(NodeJS with Express): let express = require('express'); //let path = require('path'); let bodyParser = require('body-parser'); let mongoose = require('mongoose'); mongoose.connect('mongodb://localhost:27017/test', { useMongoClient: true }); require('./Models/InitModels'); let app = express(); app.use(function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); next(); […]

NodeJS应用程序的构build是成功的(Heroku),但在启动时,Heroku的应用程序错误

我正在使用Cloud 9 IDE。 当我做的时候,构build是成功的 git add . git commit -m "first_commit" git push heroku master 其结果是这样的: Counting objects: 3, done. Delta compression using up to 8 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 280 bytes | 0 bytes/s, done. Total 3 (delta 1), reused 0 (delta 0) remote: Compressing source files… done. […]

检索nodeJS中POST请求的JSON响应

我发送POST请求到一个服务,它应该返回一个JSON作为回应。 我看到POST是成功的,但我没有得到任何回应。 我错过了什么? 下面的代码 var headers = { "Accept":"application/json", "Content-Type":"application/json", "Authorization": ("Basic " + new Buffer("admin:password").toString('base64')) } // Configure the request var options = { url: 'myservice-url', method : 'POST', headers : headers } // Start the request request(options, function (error, response, body) { if (!error && response.statusCode == 200) { // Print out the […]

构build自定义API连接器的常用方法是什么?

我大多具有编程经验作为Web开发人员,现在我的任务是build立两个rest服务之间的整合。 应用程序假设每5分钟从一个REST服务读取一次,并将数据发送到另一个服务。 我需要存储一个checkSUM值,以便在下次调用时使用。 目前我正考虑在Node和Express中构build它,并使用“定制时钟进程”在heroku上进行托pipe。 但是我不确定构build这样的应用程序的最佳方式是什么。 在没有看法的情况下开发应用程序对我来说是相当陌生的。 MVC甚至在这样的应用程序有意义吗? 任何人都可以指向资源解释一个好方法来处理这样的应用程序? 即使没有视图层,expression是否有意义? 什么是一个很好的方法来存储一个单一的值,如checkSUM或SyncKey? 是一个数据库矫枉过正? 这样的应用程序的文件夹结构是什么样的。 我知道这是一个相当广泛的问题。 我主要是在寻找build议和资源,以及其他人如何解决这个问题。 你会用什么技术?

Rest API Node Js&Express,创build链接(href)给自己

目前我正在使用Node JS&Express中的REST API。 我必须为API中的每个资源创build一个链接,就像以上的例子。 { "id": "20281", "title": "test", "body": "test", "date": "2017-11-14 09:01:35", "_links": { "self": { "href": "https://docent.cmi.hro.nl/bootb/demo/notes/20281" }, "collection": { "href": "https://docent.cmi.hro.nl/bootb/demo/notes/" } } }, 我知道我可以在我的控制器中处理这个,因为req对象是可用的。 但是最好在我的模型中创build一个虚拟字段,以便dynamic地创build链接,而不是将其保存在数据库中。 什么是最好的方法来做到这一点? DB: MongoDB ODM: Mongoose

Express.JS处理服务器端错误

我在Node.JS上使用Express.JS来创build一个应用程序。 我正在build立路线并尽我所能维护一个RESTful架构。 什么是接受表单input的过程,遇到某种错误(不一定是validation错误),然后向用户显示相同的表单,但包括他们发送到服务器的数据呢? 起初,我将POST数据存储到一个会话中,但是这从来没有像一个好的解决scheme,更像是一个黑客。 然后,我调整了我的路线,而是使用app.post|put|del()来处理表单提交,然后使用带有app.all()的path作为“全部抓取”。 基本上,如果我遇到一个错误,我会打电话next() ,把控制权交还给我的“全线”路线。 这最终导致我偏离了原来的RESTful方法。 现在,我已经build立了我的路线来更准确地反映REST风格。 但是,如果我使用app.redirect() ,则数据在redirect中丢失。 我已经结束了使用感觉像另一个黑客: controller.new_form.apply(this, arguments); (这在controller.create()被调用) 当然,我可以使用客户端validation,但我正在尽我所能创build一个完全在服务器端运行的应用程序,然后添加客户端代码,以此来改善受支持的用户体验。 有没有一些方法可用express.js(或connect.js)接受表单操作在不同的URI从表单本身,但允许我回去而不实际redirect浏览器,以便表单可以保持填充(以及显示一个错误messoge)为我的用户?

res.send()express.js自动redirect

我正在使用nodejs和框架express.js来实现我的网站。 我正在提交一个URL请求(/ report / reportname ) reportname是一个variables。 所以我这样做: app.post('/report/:id', function(req, res){ var id=req.param('id'); var bodyreportHtml; go.prototype.runReport(id,res); } 事情是在go.prototype.runReport(id,res) 我做一个res.send(bodyofthereport) 。 所以当我点击提交在我的表单上,只是redirect我的/report/nameofthereport pdf报告。 一切正常,但我想把这个URL /report/nameofthereport (PDF报告)在iframe中。 所以当我提交发布请求时,我只想刷新iframe并在其中打印报告(iframe与表单在同一页面上)。 但res.send(bodyofthereport)是必不可less的:它打印在/report/nameofthereport我的报告而我不能做一个res.redirect('/')因为身体finished 我能怎么做 ? 谢谢 !

亚马逊Mechanical Turk资格考试要求

我正在尝试为AMT HIT创build强制authentication。 但是在发布这个数据后,HIT显示所需的资格是没有的。 这是我发布的这个数据有什么不对吗? 没有资格考试的文件。 这个function真的可以使用web服务api吗? Title=Rate%20an%20image&Description=Determine%20if%20an%20image%20is%20inappropriate%20for%20children%20or%20in%20the%20workplace.&Reward.1.Amount=0.01&Reward.1.CurrencyCode=USD&&AssignmentDurationInSeconds=180&Keywords=image%20inappropriate&qualificationRequirement.1.QualificationTypeId=ABCDEFGHIJKLMNOPQRSTUVWXYZ&qualificationRequirement.1.Comparator=EqualTo&qualificationRequirement.1.IntegerValue=10&qualificationRequirement.1.RequiredToPreview=true&AWSAccessKeyId=ABCDEFGHIJKLMNOPQRSTUVWXYZ&Timestamp=2012-11-29T07%3A04%3A15.867Z&Signature=ABCDEFGHIJKLMNOPQRSTUVWXYZ&Service=AWSMechanicalTurkRequester&Operation=RegisterHITType&Version=2008-08-02

如何检查更新是否成功在node.js和sqlite3?

任何人都可以给我任何build议,如何检查更新语句是否成功使用node.js和从npm安装sqlite3安装sqlite3包(https://github.com/developmentseed/node-sqlite3/wiki/API) 要执行更新,我正在执行以下操作: var id = req.params.id; var thing = req.body; stmt = db.prepare("UPDATE FOO set name=?, year=? where id=?"); stmt.bind(thing.name, thing.year, id); stmt.run(function(err, result) { if (err) { res.send(JSON.stringify(err)); res.send({'error':'An error has occurred'}); } else { if (result) { console.log('Success: ' + JSON.stringify(result)); } res.send(JSON.stringify(wine)); } }); 但是,结果从来没有定义。 如果我将stmt.run()更改为stmt.all(),我得到一个结果,但它似乎是空的 – 将它打印到控制台上什么也不显示。

背景工作者和Meteor的REST服务

我有一个meteor应用程序,并希望添加两个function。 首先是在服务器上安排后台任务,类似于cron作业。 其次是添加一个HTTP端点作为REST URL。 这个想法是添加一个HTTP API的数据。 这两个function可以使用meteor或节点来完成吗?