Tag: 表示

从API w / Express http-proxy存储令牌

我正在设置一个通用的React应用程序,并以此项目为基础。 我成功地代理请求(使用http代理 )到我的Laravel后端。 不过,我是Nodejs的新手,我不知道如何从代理服务器安全地存储JWT到客户端的最佳方法。 我最初的想法是将标记存储到localStorage,但问题是快速服务器将无法访问它。 所以我的下一个猜测是将其存储为一个cookie,但我不知道如何将其存储在客户端,或将其作为所有传出请求的头部(另外,我可能需要某种csrf中间件)。 那么,如何操纵我的api服务器的响应,将一个令牌放置在客户端设置的cookie中,然后将其用作所有api请求的载体令牌? // server.js const targetUrl = 'http://' + config.apiHost + ':' + config.apiPort; const app = new Express(); const server = new http.Server(app); const proxy = httpProxy.createProxyServer({ target: targetUrl, changeOrigin: true }); // Proxy to Auth endpoint app.use('/auth', (req, res) => { // on a successful login, i want […]

node.js使用multer上传图片显示未定义

在这里,我试图从2个不同的文件input上传文件,我可以上传到前端,但在后端,它仍然是undefined 。 尝试了几件事,但没有奏效。 HTML: <input type="file" name="file1" file-model = "file1"/> <input type="file" name="file2" file-model = "file2"/> <button ng-click = "uploadFile()">UPLOAD FILES</button> 指示: angular.module('myApp').directive('fileModel', ['$parse', function($parse) { return { restrict: 'A', link: function(scope, element, attrs) { var model = $parse(attrs.fileModel); var modelSetter = model.assign; element.bind('change', function() { scope.$apply(function() { modelSetter(scope, element[0].files[0]); }); }); } }; } […]

mongoosefindOne后lwip.open不工作

所以我有mongoose,m and和lwip(他们是从顶部的要求)。 var express = require('express'); var router = express.Router(); var mongoose = require('mongoose'); var jwt = require('jsonwebtoken'); var Users = require('../models/users.js'); var multer = require('multer'); var mime = require('mime'); var lwip = require('lwip'); 如果我评论Users.findOne部分,图像被裁剪,因为我想它被裁剪。 但是,如果我取消注释它的lwip部分停止工作,虽然没有错误抛出。 它只是不inputlwip.open() 。 router.post('/image', upload.single('file'), function (req, res) { //This part works always. Users.findOne({userid: req.body.userid}, function (err, user) { var […]

错误:找不到绑定文件。 尝试:

我试图运行包含我的快速应用程序的电子应用程序时,遇到以下错误。 Error: Could not locate the bindings file. Tried: 我认为这个问题与serialport模块有关,因为没有它需要一切工作正常。 C:\Users\Jonathan\Desktop\client\<NAME>\electron-with-express\express-app\node_modules\bindings\bindings.js:91 <br>Error: Could not locate the bindings file. Tried: <br> → C:\Users\Jonathan\Desktop\client\<NAME>\electron-with-express\express-app\node_modules\serialport\build\serialport.node <br> → C:\Users\Jonathan\Desktop\client\<NAME>\electron-with-express\express-app\node_modules\serialport\build\Debug\serialport.node <br> → C:\Users\Jonathan\Desktop\client\<NAME>\electron-with-express\express-app\node_modules\serialport\build\Release\serialport.node <br> → C:\Users\Jonathan\Desktop\client\<NAME>\electron-with-express\express-app\node_modules\serialport\out\Debug\serialport.node <br> → C:\Users\Jonathan\Desktop\client\<NAME>\electron-with-express\express-app\node_modules\serialport\Debug\serialport.node <br> → C:\Users\Jonathan\Desktop\client\<NAME>\electron-with-express\express-app\node_modules\serialport\out\Release\serialport.node <br> → C:\Users\Jonathan\Desktop\client\<NAME>\electron-with-express\express-app\node_modules\serialport\Release\serialport.node <br> → C:\Users\Jonathan\Desktop\client\<NAME>\electron-with-express\express-app\node_modules\serialport\build\default\serialport.node <br> → C:\Users\Jonathan\Desktop\client\<NAME>\electron-with-express\express-app\node_modules\serialport\compiled\6.3.1\win32\ia32\serialport.node <br> at bindings (C:\Users\Jonathan\Desktop\client\<NAME>\electron-with-express\express-app\node_modules\bindings\bindings.js:88:9) <br> at Object.<anonymous> (C:\Users\Jonathan\Desktop\client\<NAME>\electron-with-express\express-app\node_modules\serialport\lib\bindings.js:3:35) <br></anonymous> […]

如何连线Angular2 + Webpack + Node + Express?

首先,我是有线的,有工作的,但对结果有些不满,有一种感觉可以改善。 (目前的结果可以在这里find – https://github.com/MarkKharitonov/Angular2WebpackNodeExpress/tree/v0.0.1 。) 目录结构是: C:. │ .gitignore │ package.json │ tsconfig.json │ tslint.json │ typings.json │ webpack.config.js │ ├───dist │ └───server │ api.js │ api.js.map │ main.js │ main.js.map │ └───src ├───client │ app.component.ts │ index.html │ main.ts │ polyfills.ts │ tsconfig.json │ vendor.ts │ └───server api.ts main.ts tsconfig.json 现在dist文件夹只有从./src/server编译的服务器端文件。 它们被IntelliJ IDEA放置在那里,因为./src/server/tsconfig.json在保存时请求编译。 客户端绑定发生在webpack-dev-server的内存中。 […]

Express JS路由器中间件抽象

我使用Node.js + Express JS开发了一个API,并使用基于令牌的身份validation。 我在这个API中使用了两个不同的路由器,userRoute(/ USER)和postRoute(/ POST)。 postRoute可以在authentication中使用,但是userRoute需要令牌。 为了解决这个问题,我使用了一个路由器中间件userRoute,但它干扰了PortRoute 这是代码: … var postRoute = express.Router(); var userRoute = express.Router(); // Route middleware to verify a token userRoute.use(function(req, res, next) { security.checkToken(req,res, next); }); userRoute.route('/users') .get(userCtrl.findAllUsers) .post(userCtrl.addUser); postRoute.route('/posts') .get(userCtrl.findAllPosts) .post(userCtrl.addPost); app.use(userRoute); app.use(postRoute); … 如果我尝试访问“/职位”的服务器检查令牌,不让我进来。我知道如果我改变了app.use它的工作顺序,但我不明白为什么这样工作,如果我使用“路由器中间件”。 有人知道吗?

与Mysql的本地令牌的Nodejs Passport

我希望用户能够以令牌开始会话。 无需input密码。 我正在使用护照本地令牌 https://www.npmjs.com/package/passport-local-token 但似乎这将与Mongodb合作。 任何想法?

从完全形成的响应中触发大文件下载

问题 我有一个Node.js端点,当使用以下命令访问时,可以正确触发一个任意大的文件下载: response.setHeader('Content-disposition', 'attachment; filename=' + fileName); response.set('Content-Type', 'text/csv'); response.status(200); result.pipe(response); 其中result是变换stream , response是Express对象 。 当直接访问Chrome,Firefox,Internet Explorer等的terminal时,这种方式可以正常工作。当启用基于令牌的身份validation时,尝试达到终点时会出现问题。 从用户的angular度来看,当他们点击一个button时,文件被下载。 如何使该button在请求标题中find正确的身份validation令牌并导致文件被下载? 一些可能的方法集体讨论 当用户点击button时,它会触发一个由redux-api-middleware处理的动作,这会使GET请求到达终点(authentication令牌自动包含在请求中)。 该中间件将响应保存在由React组件拾取的variables中。 在这个React组件中,如果使用的浏览器(即Chrome和Opera)支持stream, response.body将会存在,所以你可以做如下的事情。 if (response.body) { const csvReader = response.body.getReader(); const textDecoder = new TextDecoder(); const processCsvRow = (csvRow) => { if (csvRow.done) { console.log('Finished downloading file.'); return Promise.resolve(); } // Write to new […]

鱼鹰RAMLvalidationerror handling

我正在尝试自定义处理由于RAML规范失败发送给调用者的响应。 目前我的代码执行以下操作。 const cfg = require("./cfg"); const log = require('./logging'); const RAML = require('osprey'); const startMessage = "My Service started on port " + cfg.SERVER_PORT + " at " + cfg.API_MOUNT_POINT; // start an express server const start = x => { // server dependencies const fs = require('fs'), express = require('express'), app = express(), […]

Req.headers.cookie是空的,即使在请求头中有Cookie

有了Express,我有以下设置: const express = requires("express"); const path = requires("path"); const bodyParser = requires("body-parser"); const cookieParser = requires("cookie-parser"); let server = express(); server.set("port", (process.env.PORT || 5000)); server.set("views", path.join(__dirname, "/views")); server.set("view engine", "ejs"); server.use(cookieParser()); server.use(express.static(self.workingDirectory + "/public")); server.use(bodyParser.json()); server.use(bodyParser.urlencoded({ extended: true })); server.use((req, res, next) => { // if req.cookies exists and testcookie is undefined within req.cookies […]