Tag: express

MongoDB mongoose子文档创build两次

我正在使用一个简单的表单,可以用来注册一个网站的文章。 后端看起来像这样: // Post new article app.post("/articles", function(req, res){ var newArticle = {}; newArticle.title = req.body.title; newArticle.description = req.body.description; var date = req.body.date; var split = date.split("/"); newArticle.date = split[1]+'/'+split[0]+'/'+split[2]; newArticle.link = req.body.link; newArticle.body = req.body.body; var platforms = req.body.platforms; console.log(platforms); Article.create(newArticle, function(err, createdArticle){ if(err){ console.log(err.message); } else { var counter=0; platforms.forEach(function(platform){ var platformed=mongoose.mongo.ObjectID(platform); Platform.findById(platformed, […]

做一个适当的MongoDB查询(TypeError:将循环结构转换为JSON)

我正在查询我已经做了多次的事情。 看看,我似乎无法理解。 /* GET all things */ app.get('/things', function(req, res) { var search = req.query.search; console.log(search); //works properly and prints strings Thing.find({ name: {$regex : search}}, function(err, val) { if(err) throw error; console.log(val); // returns some horrible JSON res.send(JSON.stringify(val)); // Throws TypeError }); }) 我想也许我的查询是错误的,也许也许这是Mongo shell抛出的问题,但是当我走进Mongo shell。 use dbname > db.booking.find({name: {$regex: "G"}}) >{ "_id" […]

护照JWT req.user在我的一个路由中是未定义的

我有一个绝对的噩梦试图与我的快速应用程序设置智威汤逊! 认为我现在主要工作,我有一个注册路线和login路线,这两个工作正常,并生成有效的令牌,我有我的'/用户'路线中的另一个路线,我testing身份validation,这一切都很好。 但是我有另外一个包含'/ api'path的文件,这个文件的身份validation实际上非常重要,我有一条类似的testing路线,试图访问req.user(就像我在其他路线中那样),但是它看起来像req。用户未定义。 通过一些debugging它看起来像用户在req.account这是非常奇怪的,我不明白为什么它不在req.user 我在/config/passport.js中定义了我的jwt策略 'use strict'; const User = require('../models/user'), config = require('./main'), JwtStrategy = require('passport-jwt').Strategy, ExtractJwt = require('passport-jwt').ExtractJwt; //exported to be used by passport in server set up module.exports = function (passport) { const jwtOptions = { // Telling Passport to check authorization headers for JWT jwtFromRequest: ExtractJwt.fromAuthHeader(), // Telling Passport where […]

在Express路由器中使用mongoDB

我只是在学习如何使用node / express和mongodb,而且我对关于连接池的工作有些困惑。 我现在的策略是在路由器级别连接数据库,所以每条路由都有自己的连接。 我的代码我的一个路线如下所示: var express = require('express'); var router = express.Router(); var config = require('../config.json'); var url = config.db.URI; var MongoClient = require('mongodb').MongoClient , assert = require('assert'); var db; // Connect to database router.all('*', function(req, res, next) { console.log('Connecting to db'); MongoClient.connect(url, function(err, database) { assert.equal(null, err); db = database; }); next(); }); […]

有没有一种很好的方式使用EJS组队避免重复使用Express服务器?

假设我的应用程序有两个视图:index.ejs,profile / index.ejs我想使用下面的快速代码路由。 /* GET home page. */ router.get('/', function (req, res, next) { res.render('index'); }); /* GET profile page. */ router.get('/profile', function (req, res, next) { res.render('profile/index'); }); 应该两个ejs文件都有自举链接? <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css"> 如果答案是肯定的,每当我想渲染另一个页面,我应该从CDN重新加载样式和js文件? 我的意思是,当我改变我的EJS模板时,是否有一个很好的方法来保持共同的内容?

AppEngine App头中没有X-AppEngine-Region?

我正在试图让请求中的国家/地区。 我认为有可能在X-AppEngine-Country每个请求中获得X-AppEngine-Region和X-AppEngine-Country头文件,但是它们缺失。 有时标题是临时的,有时他们是这样的(只列出键): alt-svc content-length content-type date etag server status via x-powered-by 这是我的代码。 我还需要做些什么来获得地区和国家呢? app.get('/', (req, res) => { res.status(200).send(req.headers['X-AppEngine-Region'] || ''); }); app.post('/ping', (req, res) => { res.status(200).send(req.headers['X-AppEngine-Region'] || ''); });

从查询string中提取URL

考虑一个这样的url: http://some-site.com/something/ http://www.some-other-site.com 我试图从查询string,即第二个http://使用以下方法login到控制台的粗体部分。 app.get("/something/:qstr",function(req,res){ console.log(req.params.qstr); }; 然而,这只会工作,直到http: – >遇到/ /遇到它不再包含在req.params.qstr我想知道如何获取整个URLstring。 我怎样才能做到这一点? 谢谢。

TypeError:无法读取undefined(Node.js)的属性'get'

我在Node.js中是新的,我需要帮助。 我想在Visual Studio中使用express (^ 4.14.1) ,path (^ 0.12.7)和vash (^ 0.12.2)模块开发一个简单的程序。 我刚刚创build了几个文件,我将在下面向您展示。 homeController.js和index.js文件在控制器文件夹内。 的package.json { "name": "the-board5", "version": "0.0.0", "description": "TheBoard5", "main": "server.js", "author": { "name": "Utku" }, "dependencies": { "express": "^4.14.1", "path": "^0.12.7", "vash": "^0.12.2" } } server.js var http = require("http"); var express = require("express"); var app = express(); var controllers = require("./controllers"); var […]

在使用AngularJS创buildinput之后着重于input

我一直在用AngularJS做一个待办事项列表,想知道在创build一个input框后,是否有一种方法可以通过点击一个button来创build。 实际上,我在控制器中的保存function是这样定义的: $scope.save = function() { $scope.objetivo.$save() .then(function() { $scope.message = { text : 'Saved' }; $scope.objective = new Objective(); }) .catch(function(err) { console.log(err.data); if(err.data.code === 11000) { text = 'This objective is already registered' } $scope.message = { text : text || "Error when saving" }; }); }; 我认为可能是通过添加input框然后专注于它,但我不知道如何去做。

如何将所有请求redirect到特定的域名?

我在App Engine上为我的网站设置了SSL和自定义域名。 它工作得很好:我可以去https://www.mywebsite.com和页面加载。 但是我想做一下改变。 如果我去mywebsite.com,我会立即redirect到https://www.mywebsite.com 。 我怎样才能做到这一点 ?