Articles of 表示

Swagger,Express和Node.js中的“无法获取/”

我正在使用Swagger,Express和Node来定义和运行端点。 本地主机/文档上的GET请求返回所有相关的路由。 但是,当我尝试任何路由的GET请求时,它会返回一个“无法获取/ XXX” Index.js 'use strict'; var fs = require('fs'), path = require('path'), // Basic Setup new express http = require('http'), express = require('express'), mysql = require('mysql'), parser = require('body-parser'); var swaggerTools = require('swagger-tools'); var jsyaml = require('js-yaml'); // Setup express var app = express(); app.use(parser.json()); app.use(parser.urlencoded({ extended: true })); app.set('port', process.env.PORT || 5000); […]

如何限制我的restapi只能使用node.js的引用URL?

我在nodejs中有一个restAPI,并会限制只从特定的URL访问? 我的node.js代码: var express=require("express"); var app=express(); var auth = require('basic-auth'); appStart.use(function(req, res, next) { console.log(req.get('origin')); console.log(requestIp.getClientIp(req)); console.log(req.ip); //check the api key username e password var authentication=auth(req); if(authentication.name!="apiTokenUsername" || authentication.pass!="apiTokenPassword") res.status(400).send("Api key Username or password incorrect!"); //check if the ip of request is authorized if(req.ip=="xxx.xxx.xxx.xxx") return next(); //check if the origin of request is authorized if(req.get('origin') […]

如何与僵尸asynchronousJavaScripttesting工作?

这个问题我创build了一个应用程序,与expressionjs和我试图用僵尸来testing它。 我已经写了一些testing来检查网页上的内容。 我已经手动检查了页面,并且正确地从我们的数据库中加载了内容。 但是,当我运行我们的testing时,我得到不可预知的结果。 这些是我们的testing。 第一个testing是失败的。 before(function(done) { models.Listing.create({name: "Studio Flat in London", text: "This is a great flat in zone one."}); models.Listing.create({name: "The Fish Market", text: "description"}); done(); }); beforeEach(function(done) { browser.visit('/', done); }); it('each property should have a title', function(done) { expect(browser.html("body")).to.include("Studio Flat in London"); }); it('each property should have a title the […]

如何让温斯顿每日文件旋转login到相应的级别文件

我已经为我的应用程序定义了自定义级别,如下所示。 protected levels: Level = { "error": 0, "warn": 1, "info": 2, "debug": 3, "trace": 4 }; 我正在使用每日文件旋转运输来获得每日login在单独的文件。 const options: Object = { name: this.level, filename: logFilePath, dirname: WinstonLogAgent.DIR_LOG, datePattern: "yyyyMMdd.", prepend: true, level: this.level, levels: this.levels, maxsize: this.maxFileSize, maxFiles: this.maxFileCount, handleExceptions: true, humanReadableUnhandledException: true }; this.transportInstance.push(new (winston.transports.DailyRotateFile)(options)); 如果我将日志级别定义为'info',它将创build一个名为info.log的日志文件,并将logging级别'info','warn'和'error'(跟踪和debugging将被忽略)。 但是我想要的行为是不同的。 如果我指定的级别是'信息',我logging级别'信息','警告'和'错误',那么应该为每种types的日志创build单独的文件。 即'信息'级别应logging到info.log和'警告'级别logging到warn.log。 我已经尝试指定五个不同的日常文件旋转运输,每个具有独特的水平。 那么我发现的问题是有重复的日志条目。 例如,如果logging“错误”级别,则当日志logging级别设置为info时,它将logging到info.log,warn.log和error.log。 […]

找不到package.json:/

我用下面的webpack.config.js有一个Node Express打包的应用程序: module.exports = { target: 'node', entry: './server.js', output: { filename: 'node-server.min.js' } } 当我运行节点node-server.min.js应用程序工作正常,但是,当我从电子加载文件我收到以下错误信息: 未捕获的错误:在模块的Function.pkginfo.read(node-server.min.js:6390)处,找不到package.json,位于:Function.pkginfo.find(node-server.min.js:6373)。导出(node-server.min.js:6341)在Object。 (node-server.min.js:6403)在Object.styles(node-server.min.js:6408)上的webpack_require(node-server.min.js:20)。 (node-server.min.js:14624)在对象。 (node-server.min.js:14699)在对象。 (node-server.min.js:14701)在webpack_require(node-server.min.js:20) 我正在用脚本标记加载node-server.min.js文件。 有任何想法吗 ?

使用express js的http-auth摘要

我正在开发一个Express JS的API。 我想使用http-auth库 ,我一直在尝试使用摘要式身份validation,但是我一直无法使用它。 这是我的代码: var app = require('express')(), routes = require('./routes'), bodyParser = require('body-parser'), auth = require('http-auth'); app.use(bodyParser.json()); // Soporta json encoded bodies app.use(bodyParser.urlencoded({ // Soporta encoded bodies extended: true })); var digest = auth.digest({ realm: 'prueba', file: __dirname + "/usr.pass" }); app.use(auth.connect(digest)); // Conectamos todas nuestras rutas app.use('/', routes); // Levantamos servidor app.listen(9999, […]

使用mongoose将embedded文档的多个实例保存到我的模型中

我试图在我的模型中保存embedded式文档的多个实例,我期待每当我填写我的表单数据时,embedded式文档的一个新实例被创build并推送到一个数组中。 这是我的预测模式。 const mongoose = require('mongoose'); mongoose.Promise = global.Promise; const slug = require('slugs'); const teamSchema = new mongoose.Schema({ team1: { type: String }, team2: { type: String }, prediction:{ type: String } }); const predictionSchema = new mongoose.Schema({ author:{ type: String }, team: [ teamSchema ] }); module.exports = mongoose.model('Prediction', predictionSchema); 这是我的控制器 const mongoose = […]

承诺处理 – 更新数据库条目,如果存在

我坚持对Promises的新挑战。 目标:仅在P_KEY存在的情况下更新数据库条目。 当前的数据库是通过模块公开的,模块已经为db获取和放置方法。 双方都回诺言。 做法: API调用节点js上具有ID和值集的更新方法处理程序(json) 在post方法的处理程序中调用get db模块的方法检查promise成功的值是否为空,如果是则返回false否则为true。 如果属实; 数据存在调用db模块的方法。 但不知何故数据总是返回false。 即使db入口已通过db api。 /** Function to check if p_key exist*/ function checkIfPKExists(idVal) { pkdb.get(idVal).then(function(value) { if(value) { return true;} else { return false; } }, function(err) { console.log(err); return false; }) } /** UPDATE METHOD **/ var ch = checkIfPKExists("p_k"+req.body.id); if(!ch) { res.send("pk does not […]

无法使用快递中间件创buildcookie

每当新用户注册我的应用时,我都会尝试创build一个cookie,表示这是他们第一次login。 我发现这个线程 ,大致遵循它,但它不工作。 这是我现在的代码: // setting up the middle ware export default function () { return function () { const app = this app.use(cookieParser()) app.post('/app/signup/end', [firstTimeCookie(app), signUp(app)]) } } 不工作的中间件是firstTimeCookie() , signUp()工作正常。 // in firstTimeCookie: export default function (app) { return function (req, res, next) { const cname = 'FIRST_SIGNUP' const cvalue = true var […]

在快递应用程序中存储自定义Handlebars助手的位置?

作为我学习Node.js的一部分,我正在使用Express + Handlebars做一个应用程序。 我来到了需要为Handelbars视图引擎注册自己的帮手的地步。 我用registerHelper()方法定义了自己的帮助器,但是我不知道应该在我的项目结构中放置这个定义,以使我的视图(最好是全局的)可以访问帮助器。 你如何去做呢? 我的项目结构非常基本,我认为: –bin –middleware –models –node_modules –public –views –routes app.js 在app.js中,我需要handlebars模块,并使用它设置布局引擎。