Tag: 表示

书架(knex) – belongsToMany关系不工作

我一直在尝试使用belongsToMany关系(Bookshelf)build立post和标签之间的关系。 这是我的代码: db.js const Post = bookshelf.Model.extend({ tableName: 'posts', hasTimestamps: true, tags: function(){ return this.belongsToMany(Tag) } }) const Tag = bookshelf.Model.extend({ tableName: 'tags', posts: function(){ return this.belongsToMany(Post) } }) // Pivot table const PostTag = bookshelf.Model.extend({ tableName: 'posts_tags', post: function(){ return this.belongsTo(Post) }, tag: function(){ return this.belongsTo(Tag) } }) 获取路线是: .get('/:id', (req, res, next) => […]

无法将来自localhost:3000的请求代理到localhost:7000 ReactJs

我提供了一个API,我的反应的应用程序,它工作正常,但突然停止工作。 在我的客户端(React app)package.json中 "proxy": "http://localhost:7000" 现在它告诉我这个错误消息:无法代理请求/ api /用户/注册从本地:3000到http:// localhost:7000 。 提前致谢。

无效的CSRF令牌错误(express.js)

我正在使用node 6.5.0和npm 3.10.3 。 当我尝试将用户login到网站时,出现此invalid csrf token错误。 { ForbiddenError: invalid csrf token at csrf (/Users/Documents/web-new/node_modules/csurf/index.js:113:19) 在redis中存储会话的login不需要csurf模块( https://github.com/expressjs/csurf )。 使用csurf模块,会话ID已经存储在redis中,但是我无法将正确的响应返回给客户端以login用户。 我正在使用Angular2和node / express。 据我所知,Angular2在使用HTTP服务时默认支持CookieXSRFStrategy的CSRF / XSRF,所以我只需要在node / express端configuration一些东西。 使用webpack-dev-server的Angular2应用程序在localhost:3000上运行,而节点/ express服务器在localhost:3001上运行。 我支持CORS。 我能够在localhost:3000 devtools中看到名为XSRF-TOKEN cookie。 你可以build议我怎么解决这个错误? //cors-middleware.js var corsOptions = { origin: 'http://localhost:3000', credentials:true } app.use(cors(corsOptions)); app.use(function(req, res, next) { res.setHeader('Content-Type','application/json'); next(); }) }; //index.js import path […]

如何链接之前在forkjoin()操作中的每个observable的组

我在MySQL中有一个订单表,每个订单都有一些关联的文档,不pipe它们是报价单,发票等等。因此有第二个称为“documents”的表,它具有“document_id”主键和“ order_id“外键; 以类似的方式,我还有另一个技术人员对每辆车进行检查的情况,然后是另一张车辆图片。 我正在创build一个使用Node和Express的Web服务,需要返回类似于这个的Json … [ { "order_id": 1003, "customer_id": 8000, "csi": 90, "date_admitted": "2016-10-28T05:00:00.000Z", "plates": "YZG-5125", … documents: { "type": "invoice", "number": "1234", … }, checks: { "scanner": "good", "battery": "average", … }, vehicle_pictures: { "title": "a title…", "path": "the file path" … } }, { … }, … ] 正如你所看到的,有必要为每个订单做三个查询,一个用于检查,另一个用于文档,第三个用于图片,然后我需要将这些子结果添加到最终返回数组中的顺序。 在旧版的同步编程中这将是一件非常容易的事情,但是由于mysql库的连接对象中的query()方法的asynchronous性质,这个威胁变成了一个真正的地狱。 在需要处理单个订单的情况下,使用forkJoin()在服务器上使用RxJS库就足以一次处理所有三个结果,但我不确定如何“链接”每个订单(使用forkJoin来pipe理3个查询),所以一切都得到处理,最后我可以调用res.json(结果),一切整齐。 注意:我想用RxJS来解决这个问题,而不是使用像node-mysql-libmysqlclient这样的同步库软件包。 […]

无法将用户序列化到会话中

可以注册,并提示无效的用户名/密码,但打破用户成功login时,用户错误序列化失败。我似乎无法弄清楚我做错了什么。 我试图弄清楚如何实现multer和上传个人资料图片,并打破了X( 路线/ user.js的 var express = require('express'); var router = express.Router(); var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; var User = require('../models/user'); // Register router.get('/register', function(req, res){ res.render('register'); }); // Login router.get('/login', function(req, res){ res.render('login'); }); // Register User router.post('/register', function(req, res){ var firstName = req.body.firstName; var middleName = req.body.middleName; var lastName = […]

如何从API响应中parsingJPEG并发送到Node.js / Express的前端

我正在使用Google的Street View Image API来获取一个jpeg,然后我想通过Node.js / Express后端的响应体传递给我的前端。 目前,我的getStreetView函数从Google API获得正确的响应。 然后,我将这个response.body (jpeg)传递给我自己的请求处理程序。 但是,当我向该处理程序发出请求时,尽pipe请求已成功,并且包含了我已经分配的包含'Content-Type': 'image/jpeg'标题'Content-Type': 'image/jpeg' ,但图像不显示。 图像数据存在,它只是不显示: 所以要重申 – Postman对API的请求显示图像。 当我的处理程序调用getStreetView ,该请求也正在工作。 但是,它传递给GET /city时,它收到的图像不知何故正在翻译中。 这是一个编码问题? 我只是发送图片url而不是图片本身,但url包含我的API密钥 – 我认为这可能会让我在客户端易受攻击。 任何帮助非常感谢! var getStreetView = function(newLat, newLong, callback) { var api_key = process.env.API_KEY; var url = 'https://maps.googleapis.com/maps/api/streetview?' + 'size=' + 400 + 'x' + 400 + '&location=' + newLat + […]

socket.io和express.js共享会话

我遇到了这个解决scheme之间共享socket.io和express.js之间的会话:第二个答案(用户xpepermint)在这个职位: socket.io和expression4个会议 不幸的是我被困在了下面的代码中,因为variablesio位于config/socketio.js ,variablessession位于config/express.js : io.use(function(socket, next) { session(socket.handshake, {}, next); }); 我在哪里放置,如何适应上面的代码? 我的app.js文件如下所示: 'use strict'; import express from 'express'; import mongoose from 'mongoose'; mongoose.Promise = require('bluebird'); import config from './config/environment'; import http from 'http'; // Connect to MongoDB mongoose.connect(config.mongo.uri, config.mongo.options); mongoose.connection.on('error', function(err) { console.error('MongoDB connection error: ' + err); process.exit(-1); }); // Populate databases […]

返回promise,而不是node.js中的res.json(data)

我做了一个发送请求到payment_url,这是触发第二个function块。 但是我不能在then方法中得到任何东西,因为我不知道如何将数据传递回parsing函数。 无声的呼叫 paypal.request.post(payment_url) .then(function(data) { resolve(data.paymentID); }) .catch(function(err) { reject(err); }); 服务器代码 paypal.payment.create(create_payment_json, function(error, payment) { if (error) { //throw error, return the promises too } else { // return promises but how? //if I simply do res.json(payment) it's not going to work. } });

ExpressJS文件夹结构

我目前遵循由Express-Generator生成的结构,但是我怀疑这是最佳实践。 有没有其他的文件夹结构,你使用它,为什么你使用它?

NodeJS – .save()不是一个函数。 无法通过mongoose创build收集

我也面临.save()不是一个函数错误 ,但我已经经历了大多数类似的SO问题,并尝试各自的答案,但徒劳无功。 但通过我的terminal,我可以创buildcollections并保存一个。 另外.find()也在工作 。 以下是我的代码: 模型 – > clientUser.js var mongoose = require('mongoose'); var ClientUser = new mongoose.Schema({ firebaseUID :{type: String}, userName : { type : String}, displayName : { type : String} }); ClientUser.index({firebaseUID: 1}, {unique: true}); module.exports = { ClientUser : ClientUser }; dependency.js 'use strict'; var mongoose = require('mongoose'); var ClientUser […]