Tag: rest

从客户端发送图像到Node.js服务器(AngularJS)

我有一个非常快速的问题: 我有一个img标签(在我的模板文件中),它包含一个图像,在我的Angular Controller中调用: var image = document.getElementById('srcImage'); 我想把这个图像^发送到后端(我正在使用REST)。 我将用于这个POST方法的url是:'/ api / v1 / images / addImage' 我试过ngfile upload和$ http.post,但似乎没有工作。 有什么办法可以简单地把这个图像发送到服务器,以便我可以将其存储在数据库或文件系统中? 我愿意为此做出任何解决scheme。 谢谢!!

Node.js如何构buildHTTP REST APi项目?

我将学习Node.js,现在我正在尝试做一个实现HTTP REST服务的小型演示项目。 我的想法是用资源划分API(url),最终形成如下结构: – user > index.js > post.js > put.js > delete.js > functions.js – person > index.js – index.js 所以,如果你熟悉ASP.NET Web Api,我试图将Node.js的每个模块都作为控制器,并且每个Web方法都是单个文件(.js),以便将来具有较高的可维护性。 问题现在,我的index.js文件返回以下内容: var http = require('http'); var server = http.createServer(); 如何使用此模块在每个文件中configuration特定的“请求处理程序”? 目前createServer()方法返回一个server对象可以使用一个server.on('request', function)而我需要处理在不同的文件中的每个请求。

在Mocha使用node.js执行REST调用

我正尝试在Mocha执行REST调用。 我试图使用“请求”框架来loginauth0。 REST调用是正确的,我在Postman中尝试了相同的数据,并得到了正确的答案。 现在我正在尝试在我们的testing中实现这个调用,但是这不起作用。 方法不打开callback函数,我没有从服务器得到任何答案。 在后台日志中我可以看到,这个调用没有通过后端,也没有进行login。 我尝试了XMLHttpRequest到请求库的几种不同的方法。 这里我正在使用的代码: var should = require("should"); var assert = require('assert'); var request = require("request"); var authToken ='test'; var url = 'https://*****.eu.auth0.com/oauth/ro'; describe('auth0', function() { describe('Login', function() { it('should return authToken if user data is valid', function() { //REST call to login request.post({url:"https://********.eu.auth0.com/oauth/ro", form: { client_id:'*******************', username:'*******************', password:'*******************', connection:'Username-Password-Authentication', grant_type:'password', […]

不要在POST express.js上redirect

我正在用Node.js和Express 4制作一个基本的networking应用程序,我试图实现一个“跟随”function。 我在Github网站上做了一些检查,发现它使用了一个带有button的表单,该button将会发送到服务器以跟踪用户。 我觉得这听起来像一个很好的方法,但是当我发布时,我不想像github网站那样重新加载页面。 Express 4如何做到这一点? 我放在.postpath中的所有内容总是以页面加载结束。 我很确定在jQuery的ajax方法,你可以只返回false,没有什么会发生在页面上,只是请求将被发送,这是我想发生,因为我使用RESTful api,我想添加用户到当前用户的下面,但我不想只为这个function使用jQuery。 如果可能的话,我宁愿它在Express中完成,尽pipe任何帮助将不胜感激。 意见/ user.handlebars <h1>{{user.displayName}}</h1> <p>@{{user.username}}</p> <form action="" data-userid="{{user._id}}" method="post"> <button name="follow" type="submit">Follow</button> </form> 路线/ users.js app.route('/:username') .get(function(req, res) { // get :username user from api and load info … }) .post(function(req, res) { // don't reload page ??? // send PUT :username user to current users […]

JHipster应用程序的node.js REST客户端

我已经生成了JYSTER Web应用程序,它带有REST API 。 现在,我想将现有的 node.js应用程序集成到jijster web-app。 有没有一种方法可以从现有的jhipster应用程序中生成一个rest-jhipster-client? 而不是手动创build函数和调用? 目前为此使用node-rest-client 谢谢!

在Node.js Web-Server中确定用户angular色并授予API访问权限的正确方法是什么?

我在Node.js-express中有一个带有REST API的Web服务器。 我有不同的API暴露,我使用OAuthauthentication用户。 一旦我确定用户我检索他的angular色,并决定授予一个API的权限。 问题是我所有的API都重复了代码,他们都必须检查angular色并确定权限。 有没有更好的方法来做到这一点? 我应该看ACL吗? 一般来说,我是Web服务的新手,可能不知道最好的解决scheme。 谢谢。 示例代码: var accessCallback = function (err, user) { if(err == null) { var userRole = getUserRole (user.role_id); if(userRole == ROLE.SUPERVISOR || userRole == ROLE.MANAGER || userRole == ROLE.EMPLOYEE){ doStuff(); //business logic } else { response.status(400).send (error.UserAccessDeniedError()); } } else { response.status(500).send(error.DatabaseError(err)); } }; access.determineUser (req.body.tokenID, accessCallback);

无法使用PUT方法(Express&Angular)

我用MEAN Stack创build了一个REST Api和一个客户端框架。 在当地工作之后,我在Heroku上部署了API。 在我的Express路线中,我处理res.headers以便CORS应该工作: 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"); if(req.method === "OPTIONS") { res.header("Acces-Control-Allow-Methods", "GET, PUT, POST, DELETE"); return res.status(200).json({}); } next(); }); 在客户端,我处理了req头文件: app.factory('dataServices', function($http) { return { //Get the location information from API getAll: function() { return $http({ method: 'GET', url: url }) }, get: function(id) […]

为什么后续的HTTP请求

我的JavaScript使那个检索JSON数组的ajax调用。 我试图模拟长时间运行的HTTP REST调用请求,需要更长的时间才能返回结果。 我这样做是延迟写入任何东西到服务器端的响应对象,直到请求到达5分钟后。 之后,我将状态设置为200,并用JSON结束stream写入响应。 在服务端放置一个断点,我意识到请求显示第二次,但浏览器的networking选项卡不显示另一个请求。 它可能不相关,但我使用browsersync middlewars来服务这个JSON,并写入字节,并在setTimeout()结束响应。 setTimeout(()=> { res.statusCode = 200; res.write(data); res.end(); }); 题: 任何人有任何解释为什么发生这种情况? 如果有一种方法来模拟另一种方式呢?

使用mocha / chai来确保REST API提供一个文件?

我想validation一个调用我的REST API的端点之一是提供一个文件,但我不知道如何去做,我没有看到任何这方面的例子? 我看过文档 ,但是这对我没有多大帮助。 服务器端代码本质上是(在Express中): handleRetrieveContent(req, res, next) { const filepaht = '…'; res.sendFile(filepath) } 和testing案例: it('Should get a file', (done) => { chai.request(url) .get('/api/exercise/1?token=' + token) .end(function(err, res) { if (err) { done(err); } res.should.have.status(200); // Not sure what the test here should be? res.should.be.json; // TODO get access to saved file and do […]

身份validation问题 – 从Azure函数调用的Azure REST API

我正在使用Azure函数来调用Azure SQL数据仓库的其余API,以便在白天的特定时间暂停和恢复服务器(2个函数)。 在我之前创build的azure函数中,我从来不必调用REST API,因为我只使用可用的输出选项。 而SQL DW只有REST API选项。 我使用nodejs创build了一个函数应用程序,并从那里调用这些REST API。 我通过了azure色的REST API文档,并尝试了在那里解释的过程。 首先,我在azure活动目录中添加函数app作为租户,并获得tenantID(它是端点URL的一部分)和应用程序ID /客户端ID,然后尝试调用loginURL,如https:// docs.microsoft.com/en-us/azure/active-directory/active-directory-protocols-oauth-code#request-an-authorization-code通过传递所需的parameters.Though它被提及为GET,我试着GET和POST,他们没有工作。 module.exports = function(context) { var unirest = require('unirest'); var subscriptionId='subscriptionId'; context.log("starting the function"); unirest.post('https://login.windows.net/tenantID/oauth2/authorize') .headers({'Accept': 'application/json', 'Content-Type': 'application/json'}) .send({ "client_id": "clientID ", "response_type": "code","grant_type":"authorization_code" }) .end(function (response) { context.log(response.body); }); }); 这段代码只是为了获得authentication码,然后再有一个方法来获得令牌,然后调用实际的SQL DW暂停/恢复方法。 当我从VS2015运行相同的(删除模块导出和更改上下文到控制台),我得到如下相同的错误 <html><head><title>Continue</title></head><body><form method="POST" name="hiddenform" action="https://login.microsoftonline.com/9b8d9cda-ddb4-43bb-8725-bc0e9af83b43/oauth2/authorize"><noscript><p>Script is disabled. Click […]