Express节点作为启用pushState的服务器提供没有任何path前缀的任何静态资源

我正在用Ember.js或Backbone.js作为前端MVC,express.js(node.js)作为后端服务器构build单页Web应用程序。 server / app.js代码简而言之 app.use(bodyParser.json()); app.use(express.static(path.join(__dirname, '..', 'client'))); app.get('*', function(req, res) { return res.render('base'); (will sendFile (client/index.html) ) }); 它会加载所有公共资产的客户端/文件夹,客户端文件夹结构如下所示 – client — index.html ( will be rendered as always ) — app (front end mvc code) — assets — images — styles 当前端MVC启用html5 pushstate时,express服务器始终都提供所有匹配的路由,当页面刷新或者url被手动插入到浏览器中时,它将一如既往地呈现index.html。 client / index.html (示例代码) <link rel="stylesheet" href="assets/styles/reset.css"> <link rel="stylesheet" href="assets/styles/base.css"> […]

Gruntjs用grunt-nodemon,watch和jshint

我试图用这3个插件运行GruntJS ,以便它可以监视更改,并首先:lint该文件,然后重新加载快速服务器。 我的问题与下面的configuration是,如果jshint lint文件, nodemon不运行,反之亦然。 // Gruntfile.js // our wrapper function (required by grunt and its plugins) // all configuration goes inside this function module.exports = function(grunt) { // =========================================================================== // CONFIGURE GRUNT =========================================================== // =========================================================================== grunt.initConfig({ // get the configuration info from package.json —————————- // this way we can use things like name and […]

将节点本地模块部署到Azure WebSites

我正在尝试将以下示例节点应用程序部署到Azure网站: var http = require('http'); var port = process.env.port || 1337; http.createServer(function (req, res) { res.writeHead(200, { 'Content-Type': 'text/html' }); try { var canvasModule = require('canvas'), canvas = new canvasModule(200, 200), ctx = canvas.getContext('2d'); ctx.rotate(0.5); ctx.font = '30px Impact'; var message = "Hello World"; ctx.fillText(message, 40, 40); ctx.strokeRect(30, 5, 160, 50); res.end('<html><img src="' + canvas.toDataURL() […]

在Windows上使用IPython笔记本的500服务器错误

我刚刚在Windows 7 Professional 64位上完成了IPython笔记本的全新安装。 我采取的步骤是: 从http://python.org安装Python 3.4.1 > pip install ipython[notebook] > pip install pywin numpy pygments nodeenv 我可以打开笔记本电脑。 但是,当我selectFile > Print Preview或File > Download as HTML我得到一个500服务器错误。 堆栈跟踪是: 2014-08-07 09:44:25.431 [NotebookApp] Loaded template full.tpl C:\Python34\lib\site-packages\IPython\nbconvert\filters\markdown.py:78: UserWarning: Node.js 0.9.12 or later wasn't found. Nbconvert will try to use Pandoc instead. "Nbconvert will try to use Pandoc […]

如何在NTVS中使用nodemon(适用于Visual Studio的节点工具)

我正在使用Visual Studio Professional 13上的Node,很快就意识到,为代码中的每一次更改重新启动我的服务器变得麻烦了。 所以我做了一些研究,发现大多数人使用nodemon来自动刷新服务器。 虽然在线教程使用命令行来安装和运行他们的服务器与nodemon时,我用VS的界面来生成我的快递项目和下载nodemon。 我的问题是,当我运行我的服务器时,服务器不会重新启动时,我更新我的代码。 我的问题是如何通过nodemon运行我的服务器,如果我使用VS编码我的项目 这个链接也显示与我相同问题的人,但是其中的解决scheme并不清楚https://nodejstools.codeplex.com/workitem/545

Node&Mongoose – 保存时出错:TypeError:Object.keys在非对象上调用

在下面的用户架构中有一个foobar.events字段,我试图推送新的哈希(从API POST请求接收)到。 var userSchema = mongoose.Schema({ foobar: { id : String, token : String, email : String, name : String, events : [{ action : String, timestamp : Date, user_xid : String, type : {type: String}, event_xid : String }] } }); 这是Express路线的逻辑: app.post('/foobar/post', function(req, res) { var jb_user_xid = req.body['events'][0]['user_xid']; var jb_timestamp = req.body['events'][0]['timestamp']; […]

在客户端不使用npm部署node.js项目

我想要频繁更新部署一个nodejs项目。 npm在站点不可用,所以我必须打包node_modules。 这工作正常,但需要很长时间才能通过可用的ftp连接发送给客户(每次80MB大部分node_module文件)。 我的工作stream程如下所示: git clone project npm install # installs all my dev tools which I need for packaging grunt build tar xvzf build.tar.gz build/ 构build步骤简化了我的代码打包只需要什么。 node_modules文件夹被复制到build文件夹中。 如果我使用npm install –production ,我可以获得更小的占用空间,但却无法摆脱首先构build它的工具。 所以最后,我花了一些努力使我的代码足迹小,但我的工作是通过打包如此大的node_modules树来取消。 我的方法错了吗? 有没有一种更简单的方法来部署npm在生产服务器上不可用或是否有减lessnode_modules文件夹大小的好方法?

(TypeScript)为Parse SDK(浏览器和节点)创buildtypes定义

我正在为Parse Javascript SDK创build一个Typescripttypes定义。 它实际上是完整的。 该定义适用于浏览和云代码,但不适用于Node。 使用parsing与客户端和服务器端JavaScript 浏览示例: var GameScore = Parse.Object.extend("GameScore"); 节点示例: var Parse = require('parse').Parse; var GameScore = Parse.Object.extend("GameScore"); Psueduetypes定义 declare module Parse { interface FacebookUtils { init(options?: any); } class Object { constructor(attributes?: any, options?: any); } module Cloud { interface FunctionResponse { success?: (response: HttpResponse) => void; error?: (response: HttpResponse) => void; […]

node.js – PM2将未捕获的exceptionlogging到第三方服务(如Logentries)

我在我的node.js项目中使用pm2( https://github.com/Unitech/pm2 )。 此外,我发送Logentries( https://logentries.com )中的应用程序的错误日志。 我想知道是否有可能从应用程序中logging未捕获的exception(当某些事情严重失败,pm2重新启动应用程序)? 我知道使用process.on('uncaughtException')是不好的做法,所以想听听一些build议。 谢谢!

Sequelize:需要vs导入

在sequlize的文档中,他们使用像这样的导入function // in your server file – eg app.js var Project = sequelize.import(__dirname + "/path/to/models/project") // The model definition is done in /path/to/models/project.js // As you might notice, the DataTypes are the very same as explained above module.exports = function(sequelize, DataTypes) { return sequelize.define("Project", { name: DataTypes.STRING, description: DataTypes.TEXT }) } 但是,这会有什么问题呢? // in your […]