Tag: express

获取在Express中请求路由的域

如果我有这个客户端应用程序运行在端口3000上,并且在我的API中build立在ExpressJS之上,在端口8080上运行,我怎么知道请求是在localhost:3000上发起的呢? 我听说有人在用: req.get('host') //or origin req.headers.host //or origin origin不存在,主机返回localhost:8080 ,即服务器端。 我想要客户的地址。 为什么在ExpressJS上获取这些信息非常困难? 任何人都知道我该怎么做?

节点JS +护照login

我试图configuration我的第一个节点的js应用程序使用护照login。 所以首先是第一件事。 我创build一个/app/config/express.js文件来configuration快速的东西。 所以我的app.js更简单: var app = require('./app/config/express')(); app.listen(3001, function(){ console.log("Servidor rodando"); }); 好,这很酷。 但! 我的express.js文件太大了。 也许你可以给我一些如何重构这个技巧? 我添加了一些问题的意见,我想让这个代码更好。 var express = require('express'); var load = require('express-load'); var expressValidator = require('express-validator'); var bodyParser = require('body-parser'); var passport = require('passport'); var Strategy = require('passport-local').Strategy; var session = require('express-session'); var flash = require("connect-flash"); module.exports = function() { // […]

如何在将图像上传到服务器时传递多个值(使用AngularJS和NodeJS进行file upload)?

客户端: 我做了file upload与AngularJS和NodeJS它的工作,但上传文件时,我需要传递“名称”和“电子邮件”服务器。 服务器端: 上传文件到文件夹后,我需要将文件path,名称和电子邮件保存到数据库中。 我怎样才能做到这一点? angular.module('fileUpload', ['ngFileUpload']) .controller('MyCtrl',['Upload','$window',function(Upload,$window){ var vm = this; vm.submit = function(){ //function to call on form submit if (vm.upload_form.file.$valid && vm.file) { //check if from is valid vm.upload(vm.file); //call upload function } } vm.upload = function (file) { console.log(vm.name); console.log(vm.email); Upload.upload({ url: 'http://localhost:3000/upload', //webAPI exposed to upload the file data:{file:file} […]

res.json返回无意修改的input

我的res.json函数似乎在修改我的数据。 如果我在函数中logging数据,它将返回正确的数据。 只有在res.json里面我的数据改变了,我不知道为什么。 例如。 它返回{"unix":"1484600306","naturalFormat":"2017-01-16"}它返回{"unix":"1484600306","naturalFormat":"\"2017-01-16\""}. function: function unixToDate(timestamp) { var a = new Date(timestamp * 1000); //console.log(a); var rgx = /T(\d{2}):(\d{2}):(\d{2}).(\d{3})Z/; var newA = JSON.stringify(a); //console.log(newA.replace(rgx, "")); return newA.replace(rgx, ""); } 路线 router.get('/:unix', function(req, res) { var timestamp = req.params.unix; var regex = new RegExp("\\d{10}"); if (regex.test(timestamp)) { var date = unixToDate(timestamp); console.log(date); res.json({ unix […]

在Express中更新POST请求的页面内容

我遇到了一个问题,我试图通过一个表单完成的POST请求来更新网页的内容,但问题是variables被设置为全局范围,每当我刷新页面的内容仍然那里。 有人解释了什么是问题,并告诉我,我可以“… 使用数据返回一个JSON对象,而不是做一个redirect,然后从客户端执行POSTasynchronous并显示数据。 ”这是代码我使用的是: performance: var data; var url; /* GET home page. */ router.get('/', (req, res, next) => { res.render('index', { 'data': data}); }); /* POST HANDLER */ router.post('/link', function(req, res, next) { var pattern = /^((http|https|):\/\/)/; url = req.body.link; if (!pattern.test(url)) { url = "http://" + url; bitly.shorten(url) .then(response => { data = […]

isAuthenticated()函数不工作node.js护照

我正在创build在线课程应用程序,我只想要authentication的用户查看课程的详细信息和课程讲座。 我正在使用本地的护照authentication策略进行用户authentication。 我在我的路由中添加了isAuthenticated,但是,未经validation的用户仍然可以查看video讲座。 这是我的路线文件。 文件名: – courses.server.routes.js 'use strict'; /** * Module dependencies */ var coursesPolicy = require('../policies/courses.server.policy'), courses = require('../controllers/courses.server.controller'); var passport = require('passport'); var isAuthenticated = function(req, res, next) { // if user is authenticated in the session, call the next() to call the next request handler // Passport adds this method to […]

如何返回与隐私值相关的特定对象值?

我有这个mongoose模型: var user = new Schema({ email : {type: String}, firstName: {type: String}, lastName: {type: String}, username: {type:String}, password: {type:String}, privacy : { displayEmail: {type: Boolean, default: true}, displayUsername: {type:Boolean: default: true}, displayfirstName: {type:Boolean: default: true}, displaylastName: {type:Boolean: default: true} }) 假设用户将displayLastName abd displayLastName的值设置为false 。 然后,我有一个简单的GET请求,返回一个json对象与所有用户的细节。 我如何查询mongo只返回隐私对象中的true的字段? 如果displayfirstName为true,则返回firstName值。 更新 var user = new Schema({ email […]

带有可能的空参数的find()语句

我试图弄清楚Mongoose和MongoDB是如何工作的…我对他们来说真的很陌生,我似乎无法想象如何根据find语句返回值,其中查询中的某些给定参数可能是空 – 是否有一个属性,我可以为此设置或什么? 为了进一步解释,我有一个网页,有不同的input字段,用于search公司,但他们不是所有的强制性。 var Company = mongoose.model('Company'); Company.find({companyName: req.query.companyName, position: req.query.position, areaOfExpertise: req.query.areaOfExpertise, zip: req.query.zip, country: req.query.country}, function(err, docs) { res.json(docs); }); 通过填写网页上的所有input字段,我得到一个结果,但只有那个匹配的特定的一个。 假设我只填写country ,它什么也没有返回,因为其余的都是空的,但是我希望返回所有在德国的行。 我希望我清楚地expression自己。

在configuration文件页面使用数据库中存储的名称显示用户

我想要显示用户名在configuration文件页面成功login/注册/注册与twitter /注册与谷歌,但在我的数据库中,我有不同的领域来存储用户数据,如果他与Twitter或谷歌login,即他的数据被存储在user.twitter.name如果他用Twitterlogin,并且user.google.name如果他login与谷歌和user.local.name如果他login没有任何服务,但是,这里是我用来显示用户名的HTML代码段,但只有一个字段存在,那么我应该如何显示用户名? <div class="page-header text-center"> <h1><span class="fa fa-anchor"> </span> Welcome <% if (user.local.name != undefined) user.local.name else if (user.google.name != undefined) user.google.name else if (user.facebook.name != undefined) user.facebook.name %> </h1> <a href="/logout" class="btn btn-default btn-sm">Logout</a> </div> 这是迄今为止我已经实现的,但它不工作。 我在这里尝试的是检查是否有任何名称字段未定义,然后使用该名称来迎接用户。 我是JavaScript新手,nodejs和expression如果有人可以告诉我我哪里错了?

将MongoDB集合迭代到帕格

我试图向帕格显示一个MongoDB员工集合。 我知道这与第一个“数据”对象有关。 我不知道如何呈现数组内的数据。 MongoDB集合: { "data":[ { "active":true, "userName":"example", "employeeDetails":{ "personalDetails":{ "firstName":"Dennis", "lastName":"Glover", "emailAddress":"example@example.com" } } }, { "active": false, "userName": example2, "employeeDetails": { "personalDetails": { "firstName": "Ben", "lastName": "Dover", "emailAddress": "example2@example.com" } } }, ] } performance: MongoClient.connect(url, function(err, db) { if (err) { console.log('Unable to connect to the Server', err); } else { […]