Tag: 表示

如何从节点中的module.exports链中调用一个函数

我已经在我的一个模型( review )中声明了一个函数,并以标准节点的方式导出它,以便其他文件可以使用它。 然后我引用另一个模型( company )并将其导出到那里。 最后,我试图使用company在另一个文件( companiesRoute )中定义的函数,但我得到一个company.getAllCompaniesWithReviews is not a function错误。 我正试图做甚至可能吗? // review.js module.exports.getAllCompaniesWithReviews = function(next) { // … // … // … }; // company.js var reviews = require('./review'); module.exports.getAllCompaniesWithReviews = reviews.getAllCompaniesWithReviews; // companiesRoute.js var company = require('../models/company'); company.getAllCompaniesWithReviews(function(err, result) { // … // … // … }); 如果我尝试直接从companiesRoute调用函数,那么它的工作原理: review.getAllCompaniesWithReviews(function(err, result) […]

不能张贴(评论一个post)| 蒙哥与mongoose

我在NodeJS / Express与Mongodb结合创build应用程序,在那里我想能够发表评论,但我一直没有find404。 我在我的server.js中设置了模型和路由,并在两者之间build立了'ref',但是这是我一直得到的响应: 正如你可以看到以下,“捕获”又名“后”确实存在: 编辑:用Zen给我的答案对我最初的代码做了一些修改。 这是我的代码: -server.js // Init Express Web Framework var express = require('express'); var app = express(); var path = require('path'); // Set view engine to EJS & set views directory app.engine('html', require('ejs').renderFile); app.set('view engine', 'html'); app.set('views', path.resolve(__dirname, 'client', 'views')); app.use(express.static(path.resolve(__dirname, 'client'))); // Database Connection var mongoose = require('mongoose'); var configDB […]

错误在使用“vaadinfile upload”(聚合物)通过nodejs与express

我正尝试使用vaadinfile upload元素上传简单文件(请参阅https://vaadin.com/elements/-/element/vaadin-upload ) 我正在使用nodejs,并在服务器端使用multer作为中间件。 nodejs的简化代码如下: var express = require("express"); var multer = require('multer'); var app = express(); var storage = multer.diskStorage({ destination: function (req, file, callback) { callback(null, './uploads'); }, filename: function (req, file, callback) { callback(null, file.fieldname + '-' + Date.now()); } }); var upload = multer({ storage : storage}).single('userPhoto'); app.get('/',function(req,res){ res.sendFile(__dirname + "/index.html"); […]

在node.js中堆叠路由

var express = require('express'); var router = express.Router(); router.use(function(req, res, next){ console.log(req.user) if(!req.user){ res.redirect('/login'); }else{ res.locals.username = req.user.username; return next(); } }); //this won't work router.get('/register', function(req, res, next) { res.render('register'); }); 第一块是有道理的,它的工作,我可以有一个受保护的路线login系统。 但在同一时间,它毁了我的第二个位,它会显示login页面尽pipe我试图让nagivate本地主机:3000 /注册。

ExpressJS发布数据validation并强制执行数据types

如何以“优雅的方式”强制执行JavaScript的数据types? 假设在客户端预期有以下格式的发布请求, { field1 : 123, //Number field2 : "HI", //String field3 : { subfield1: 1234 subfield2: "asd" } } 在我的高速路由中,我会变得非常偏执,因为客户端可以发送任何东西(使用控制台,ajax或萤火虫等)。 因此,我会手动validation每个领域,我觉得非常繁琐和累人。 例如, router.post('/api/add', function (req, res) { function validVariable(input) { return (typeof input !== 'undefined') && input; } if (!validVariable (req.body.field1)) { res.send("Not Valid"); } if (!validVariable (req.body.field2)) { res.send("Not Valid"); } if (!validVariable […]

让所有的网站path加载相同的静态网站的快递

在我的快递服务器,我想所有的path加载相同的静态网站,我试着用下面的代码: const express = require('express'); const app = express(); app.use('*', express.static('build')); app.listen(3000); 不幸的是,当我导航到本地主机上的任何path时,出现以下控制台错误: :3000/main.js/:1 Uncaught SyntaxError: Unexpected token < 当试图查看带有错误的JS文件时,它似乎正在为index.html提供服务。 我知道这是由于通配符,但我不能想办法从静态服务器干净地排除所有文件名和path。

Angular2 ExpressJs – file upload到服务器

Angular-2我试图上传文件到服务器。 以下代码将file upload到服务器, 我怎样才能链接到我的mongodb文件? 当一个file upload时,我想把它链接到一个特定的文件。 另外我怎样才能提供一个在用户界面的链接,从服务器上下载上传的文件? Component.ts @Component({ selector: 'aptcontent', template: ` <div> <input type="file" (change)="fileChangeEvent($event)" placeholder="Upload file…"></div> <div > <a (click)="upload()">Upload Docs</a> </div> `, directives: [ROUTER_DIRECTIVES] }) export class AptContentComponent implements OnInit { data: any; filesToUpload: Array<File>; constructor(private apartmentService: ApartmentService, private sharedService: SharedService, params: RouteParams) { this.filesToUpload = []; } ngOnInit() {} upload(){ […]

socket.io无法发出快速app.postcallback

我有一个快速的应用程序,打开与我的前端React应用程序的套接字连接。 我想发送一个事件到连接的套接字,每当有人用json数据发送一个post请求到我的服务器,但是socket.emit不会在a.postcallback中触发。 然而,io.sockets.emit工作正常,但在这种情况下对我来说是没有用的。 这失败了: io.on('connection', (socket) => { app.post('/event', (req, res) => { socket.emit('someevent', req.body); res.sendStatus(200); } } 但是这通过: io.on('connection', (socket) => { app.post('/event', (req, res) => { io.sockets.emit('someevent', req.body); res.sendStatus(200); } }

在express中追加urlpath

我正在使用freeboard.iobuild立干舷。 我使用express在节点服务器上运行它。 我用 router.get('/', function(req, res, next) { res.sendFile(path.join(__dirname + '/index.html')); }); 当基础路线被击中时发送干舷html文件。 不过,为了使freeboard加载我保存的仪表板,我需要将#source = dashboard.json附加到url。 所以最后的url看起来像 http://localhost:8080/#source=dashboard.json 有什么办法,我可以做到这一点使用快递? 当我打localhost时:8080 /我想附加到URLpath#source = dashboard.json,并用index.html文件响应。 谢谢!

在摩卡testing中使用es6

我试图将es6纳入我的服务器端代码。 在运行服务器时使用babel-node工作,但是我在运行mochatesting时遇到编译es6到es5代码的麻烦。 这是我的文件夹结构 我有一个server.js启动一个worker.js文件(它有快递服务器) server.js文件 import {SocketCluster} from 'socketcluster'; const socketCluster = new SocketCluster({ workers:1, brokers:1, port: 3000, appName:null, workerController: __dirname + '/worker.js', brokerController: __dirname + '/broker.js', socketChannelLimit: 1000, crashWorkerOnError: true }) worker.js文件 export const run = (worker) => { console.log(' >> worker PID: ',process.pid); const app = express(); const httpServer = worker.httpServer; const scServer […]