Tag: expression

express-validation会抛出一个错误:错误('请提供一个validation模式')

我是Node.js的新手 我想为表单的一个字段添加一个简单的validation来testingExpress中提供的validation。 我按照https://www.npmjs.com/package/express-validation中的步骤操作 我使用了快速validation中间件。 我安装了相应的模块(express-validation和joi)。 然后,我添加了一个文件夹“validation”和文件“编辑”与以下内容: var Joi = require('joi'); module.exports = { body: { title: Joi.string().required() } }; 在处理post的path中,我添加了相应的参数: router.post('/', validate(validation.edit), function(req, res, next) 并将具有validation规则的中间件和文件保存到variables中: var validate = require('express-validation'); var validation = require('../validation/edit.js'); 当我运行应用程序时,它会引发一个错误:错误('请提供一个validation模式')。 所以,我想知道什么validation模式是必需的,我想在哪里添加它?

声明与打印机自定义接口合并

我正在寻找添加一个用户属性的express.Requesttypes,使得req.user将是我的自定义typesIUser。 我读了声明合并是要走的路,所以我创build了一个custom.d.ts文件 declare namespace Express { export interface Request { user?: IUser; } } 尽pipe打字稿现在允许我使用req.user,但它被定义为键入any 。 在我的types文件中导入IUser并没有帮助,因为它只是使打字机变得更糟,现在根本不能识别req.user。 我的打字怎样才能被IDE视为IUser?

将嵌套的发射器variables传递给事件侦听器的callback函数

在下面的例子中,我需要找出一种方法将variables“id”传递给“set”发射器的侦听器。 我遇到的问题是,我不能通过像updateStore(req.id)处理程序传递它,因为从mongoStore事件“更新”有它自己的返回值“mongoId”它返回,我也需要。 另外,我不能仅仅引用req.id,因为不能保证它不会因另一个请求进入app()而改变值。 在处理程序启动时,我将如何访问updateStore处理程序中的req.id和mongoId的值? 请注意,这个示例代码不运行,它是一个更大的程序的精简版本。 我想提供我想要完成的逻辑。 var self = this; var app = express(); var mongoStore = new MongoStore({url:'/path/to/mongo'}); function updateStore(mongoId) { if (mongoId == req.id) { // do something self.emit('complete'); } } app.get('/*', function(req,res) { // req.id needs to get passed to updateStore() mongoStore.on('update',updateStore); self.on('complete', function() { self.removeListener('update',updateStore) } });

Sequelize – SQL Server – 按关联表sorting

我有3个表,如user , userProfile和userProfileImages 。 User与userPrfoile映射关系和userProfile与userProfile的映射关系一样多。 我需要在userProfileImages 通过查询来编写订单 ,我尝试了下面,但没有运气。 User.findById(uID, { include: [ model: sequelize.models.userProfile as: userProfile, include: [ { model: sequelize.models.userProfileImages, as: 'profileImages', } ], order: [[sequelize.models.userProfileImages.id, "desc"]] // order: [["id", "desc"]] –> Tried this way also no luck ] } 我得到的结果,但userProfilePicture表的结果不是desc。 请给解决scheme

平均堆栈应用与angular4

我正在用Angular 4做一个MEAN栈应用程序。 我做了什么: 为我的Node / Express应用程序创build了一个MVC目录结构。 创build了一个Node / Express服务器。 创build一个基本的API,其中带有前缀为/apipath 使用POSTMANtestingAPI 使用Angular-Cli在MEAN栈应用程序的根目录下创build一个angular度项目。 在.angular-cli.json outDir属性更改为../public 将我的服务器文件更改为发送将所有其他请求(不会去/api )发送到Angular应用程序 我的目录结构: angular-src文件夹包含由angular-cli生成的angular度应用程序 app-api文件夹包含执行所有CRUD操作的API。 这是所有/api路线被引导到的地方。 app-server文件夹只包含一个path文件,它将所有/发送到angular度应用程序( public/index.html ) 公用文件夹是angular色应用程序的index.html文件在运行ng build app.js是我的节点/快递服务器居住和redirect传入的API请求 当我运行该应用程序的作品。 节点服务器将我的请求发送到Angular Apps index.html与公用文件夹,并显示我的app.component.html模板。 我的问题: 我运行nodemon来启动我的节点/快递服务器,然后导航到angular-src文件夹并运行ng build来设置我的angular度应用程序。 这个过程似乎对我来说是相当长的是什么更好的方式来实现这一目标? 另外,我必须在每次更改angular度应用程序时运行ng build,以便能够读取更改。 有没有像nodemon东西,但angular度来看,自动更改和重置。 我有2个package.json文件。 一次为节点/expression和另一个angular度。 项目中是否应该只有一个package.json文件? 该应用程序终于必须在Heroku上启动,目前我有一个包含web: npm start的Procfile web: npm start 。 如何在heroku中pipe理angular 4? 我是否需要将ng build命令添加到Procfile? Angular App&Node / express应该运行不同的端口(即端口3000和4200)还是都应该在一个端口上? […]

如何用DEBUG选项启动pm2进程

我有一个快速的应用程序,我开始在terminal使用以下命令来启用debugging日志: DEBUG=custom:* npm start (on Ubuntu) SET DEBUG=custom:* & npm start (on Windows) 在生产服务器上,我使用以下命令启动与PM2的应用程序: pm2 start bin/www -i 0 但是,这并没有启用我的代码中的debug日志,所以debugging语句不会被添加到日志,只有console.error()被添加到日志文件。 如何在启动PM2的同时传递DEBUG=custom:*选项?

将stream响应转换为HTTP响应

我有一个API尝试向一个API发送一个HTTP请求,然后将这个图像传回给我,或者等待图像传输给我,然后发送给我这一切。 我正在使用Express和请求承诺。 这是我的代码的缩短版本。 const express = require('express'); const router = express.Router(); const request = require('request-promise'); const imgFunc = async () => { try { const response = await request.get({ method: 'GET', uri: `http://localhost:8080`, }); return response; } catch(err) { console.log(err); } }; router.get('/', async function(req, res, next) { try { const response = await imgFunc(); […]

Node.js / expressparsing数据并且仍然返回作为响应,并且一些数据丢失

如上所述,我使用NODE / Express后端,并在将其发送到前端之前试图parsing出一些数据。 我有一个对象(项目)的数组,并希望parsing出每个项目中的特定字段,特别是description和geolocation 。 它似乎工作得很好,但我遇到了一些问题。 首先,我会告诉你其中一个项目,告诉你以前是什么: { "_id": { "$oid": "59925302e12872a81b28099e" }, "offer": "19f5d9ef37b30311", "txid": "389eb024f8869d787954c74d1653b8358e581cb4c81358361ffac662875bceec", "expires_in": 13770133, "expires_on": 1516531809, "expired": false, "height": "46411", "category": "for sale", "title": "Jack Garratt Signed Deluxe CD", "quantity": "1", "currency": "USD", "sysprice": 415240000000, "price": "35.00", "ismine": false, "commission": "0", "offerlink": "false", "private": "No", "paymentoptions": 2, "paymentoptions_display": "BTC", "alias_peg": […]

nodejs-无法将结果返回给控制器function

从我的模型中,我从用户的MySQL数据库中获取一些文章。 模型 var mysql = require('mysql'); var db = mysql.createPool({ host: 'localhost', user: 'sampleUser', password: '', database: 'sampleDB' }); fetchArticles: function (user, callback) { var params = [user.userId]; var query = `SELECT * FROM articles WHERE userId = ? LOCK IN SHARE MODE`; db.getConnection(function (err, connection) { if (err) { throw err; } connection.beginTransaction(function (err) […]

使用javacsripts新的RegExp()函数的积极前瞻

我有以下情况: var x = "dot.test:semicolon;exclamation!Question?"; var separators = ['\\\!', '\\\.', '\\\(', '\\\)', ':', ';', '\\\?']; var tokens = x.split(new RegExp(separators.join('|'), 'g')); //expected output : ['dot.', 'test:', 'semicolon;', and so on…] 这工作得很好。 现在我想将RegExp转换为一个积极的lookaheadexpression式,它保持String中的分隔符。 我不知道我将如何做这样的事情与JavaScripts new RegExp()函数。 我想包括[AZ] [az] [0-9]和所有其他标志,因为我将parsing一个正常的文本,并希望保持在每个案件的分隔符。 我真的很感激一些build议!