Tag: 表示

用gulp-express运行coffescript文件

我正在expressJS中创build一个API,并且我想每次更改文件时重新加载服务器 我试过了 gulp.task('server', function () { // Start the server at the beginning of the task server.run({ file: 'server.coffee' }); // Restart the server when file changes gulp.watch(['*coffee'], server.notify); }); 但它失败,因为它认为咖啡文件是一个JavaScript文件,并返回语法错误

创build不同types的圈子,如GooglePlus

祝大家新年快乐,我正在为使用express,angular,node和MongoDb的医生创build一个社交networking,这些技术相当新颖,我一直在考虑为特定用户创build不同types的圈子 ,就像googleplus那里有不同的圈子像朋友和家人 ,在这里我想创build不同专业的医生圈子,并想知道我应该如何处理它在后端 架构: var NetworkSchema = new Schema({ UserID: { type: Schema.Types.ObjectId, ref: 'User' NetworkList: [ ], }); 到目前为止,我一直在想的是在NetworkList数组中插入具有不同专业领域名称的不同对象,它应该是通用的,所以,我离开了NetworkList数组 – 空的 ,可能是我不太正确逻辑,这里是文件 { "NetworkList" : [ HeartSpecialist: [ //ObjectId's of HeartSpecialist ], CardioLogists: [//ObjectId's of CardioLogists ] .. ], "UserID" : ObjectId("54aa46ef65c266341494a528"), "_id" : ObjectId("54aa46ef65c266341494a529") } 当我使用鉴别器的架构types如: var portalSchema = new Schema(), CircleType = […]

快速路由“/”

在expression式中,当定义我的索引路由时,我使用“/”(这工作),但是,我试图使根可configuration,所以我尝试了以下: var root = ""; // can be whatever, but is sometimes empty app.get(path.join(root, ""), …); 当我启动服务器(并导航到'索引'),我得到一个错误; “ Cannot GET / ”,但不是什么“/”是? 他们有什么不同? 为什么"/"在path.join("", "")不起作用?

Node.js设置错误的内容长度。 我如何设置这一个

我需要一些帮助。 即使我把内容长度设置为响应对象,它似乎不起作用。 我有错吗? res.set({ 'Content-Type': res._data.ContentType, 'Content-Length': res._data.ContentLength, ETag: res._data.ETag }); res.send(res._data.Body); 我使用express和body-parser来发送数据,并且我设置了Content-Length。 res.header('Content-Type', res._data.ContentType); res.header('content-length', res._data.ContentLength); res.header('Cache-Control', 'no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0'); 我也试过这个。 { AcceptRanges: 'bytes', LastModified: 'Thu, 15 Jan 2015 22:23:43 GMT', ContentLength: '648789', ETag: '"7da971554e6ff4f6dfcdb7b2ba5e0be3"', ContentType: 'image/jpeg', Metadata: {}, Body: <Buffer ff d8 ff e0 00 10 4a 46 49 […]

拦截(并可能拒绝)networking套接字升级请求

我有一个Node.js服务器,我正在发送一个Web套接字升级请求。 此请求的授权标头包含login信息,我需要与数据库条目进行比较。 我不确定如何停止打开Web套接字连接,直到我的数据库查询callback被执行。 以下是我目前正在做的简化: var Express = require('express') var app = Express() server = app.listen(app.get("port"), function () {}) server.on("upgrade", function (request, socket) { //Query database //On success set "authenticated" flag on request (later accessed through socket.upgradeReq) //On failure abort connection }) 这个工作,但是有一个短暂的时间sockets打开,但我没有validation授权标题,所以恶意用户可能会发送/接收数据。 我通过使用“authentication”标志来减轻这种风险,但似乎必须有更好的方法。 我尝试了以下的东西,但他们似乎拦截除升级之外的所有请求: Attempt #1: app.use(function (request, response, next) { //Query database, only call […]

Express4 + Socket.io 0.9:不同的客户端获得相同的非广播消息

这是一个通过passport.js使用validation的网站。 两个不同的用户连接不同的浏览器,他们要求有关他们的用户名的信息。 服务器获取信息并使用socket.io发回。 一切都像一个魅力,但如果两个客户端同时加载页面,其中一个的信息去两个浏览器,看起来像服务器正在写在同一个套接字。 服务器端: server.js: var express = require('express'); var app = express(); var http = require('http').createServer(app).listen(8000), io = require('socket.io').listen(http); socket.js: module.exports = function(app, io) { … io.sockets.on('connection', function(socket) { … //Build the information about the user and send it back var userData = userInfo(); socket.emit('userInfo', userData); … } } 客户端(包含在index.ejs中的JavaScript文件): var socket = […]

从redirect表示护照authentication空白页面

我使用Facebook的身份validation策略使用护照。 我使用angular度为客户端和服务器端表示。 当用户点击loginFacebook,并成功通过身份validation后,我将redirect回主页面。 但是,当我回来时,我总是得到空白页。 刷新后,页面再次罚款。 这是我的实现: facebook.js: 'use strict'; var passport = require('passport'), url = require('url'), FacebookStrategy = require('passport-facebook').Strategy, config = require('../config'), user = require('../../app/user/user.server.controller'); module.exports = function() { // Use the Passport's Facebook strategy passport.use(new FacebookStrategy({ clientID: config.facebook.clientID, clientSecret: config.facebook.clientSecret, callbackURL: config.facebook.callbackURL, profileFields: ['id', 'displayName', 'email'], passReqToCallback: true }, function(req, accessToken, refreshToken, profile, done) […]

使用Gulp Use-Ref和Express

由于Express在编译Jade时没有使用ref ,所以我无法使用 Express -ref ,因为我没有使用Gulp编译我的编译文件。 有谁知道是否有可能得到使用-Ref与快速?,如果可以,请你举个例子。 这将解决很多问题,因为Node的所有资产pipe理者似乎都是非常具体的,而且不具有可扩展性。

使用node.js创build支持javascript的networking爬虫

这并不一定是一个爬虫,但我想这样说更容易理解。 给定HTML,浏览器加载/执行JavaScript(+应用样式) 我想在node.js中执行相同的任务 即。 给定一个html,node.js会加载脚本(通过<script>标记或require()调用)并执行脚本(主要用于渲染) express.js的res.render似乎并不接受html-string作为input。 我怎样才能模拟浏览器的JavaScript渲染能力与节点? 假设node.js获得与浏览器相同的html地址? 你可以想到一个抓取HTML的网页爬虫,并执行JavaScript来呈现页面。 编辑 虽然与常规爬行任务有一个很大的区别,那就是我可以在本地访问大部分JavaScript文件(或任何其他资源)。 我试图呈现在我的服务器启用JavaScript的HTML。

在Webstorm中一次性debuggingAngularJS和NodeJS(没有CORS)

我有一个运行在具有AngularJS前端的NodeJS上的客户机/服务器应用程序。 我想使用Webstorm的内置debuggingfunction,但它不会工作。 想象下面的情景: 我有一个客户端文件夹和服务器文件夹的webstorm项目。 我可以启动客户端和服务器的debugging器,它可以工作。 但是这两个会话都在不同的端口上。 所以,如果不使用CORS并告诉AngularJS使用不同的服务器地址,那么对客户端内部服务器的AJAX请求将不起作用。 在生产版本中,客户端将在服务器下发布,但是为了开发,不需要这样做。 有谁知道如何做到这一点? 就像:系统应该像一个服务器一样,在一个URL下。 还是我的方法愚蠢? 最好的问候,克斯滕