Articles of 表示

pdfkit中的HTML表格(Expressjs-Nodejs)

我正在使用pdfkit生成PDF文件,我想发送这个PDF文件到浏览器。 我的下面的代码工作正常,我得到一个文本的PDF。 其实下面的代码是样本生成PDF使用pdfkit在nodejs,但现在我想创buildHTML表。 最新的代码 var PDFDocument = require('pdfkit'); var fs=require('fs'); doc = new PDFDocument(); doc.pipe( fs.createWriteStream('out.pdf') ); doc.moveTo(300, 75) .lineTo(373, 301) .lineTo(181, 161) .lineTo(419, 161) .lineTo(227, 301) .fill('red', 'even-odd'); var loremIpsum = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam in…'; doc.y = 320; doc.fillColor('black') doc.text(loremIpsum, { paragraphGap: 10, indent: 20, align: 'justify', columns: […]

使用Connect Multiparty处理节点js中的请求

Error: Request aborted at IncomingMessage.onReqAborted (D:\ProjectName\node_modules\express\node_modules\connect\node_modules\multiparty\index.js:131:17) at IncomingMessage.EventEmitter.emit (events.js:92:17) at abortIncoming (http.js:1911:11) at Socket.serverSocketCloseListener (http.js:1923:5) at Socket.EventEmitter.emit (events.js:117:20) at TCP.close (net.js:466:12) 使用连接多方中间件在节点js中上传多个文件时出现此错误。 我甚至没有上传大文件。 其不超过50MB。 当上传文件时断开networking连接时出现此错误。 有没有办法来处理这个错误。

在mongoosepre中间件,我如何访问更新查询?

我正在尝试使用mongoose> 4.0.0的新不稳定版本来validation更新查询。 说我想要使用以下查询更新架构 schema.update({_id:'blah'},{a:'blah'},function(err){ //do your thing }) 所以可以说我有以下模式, var schema = new Schema({ a:{type:String} }); schema.pre('update',function(next){ var findQuery=this._conditions; // gives {_id:'blah'} // how do i get {a:'blah'}???? next(); }); 我如何得到{pre:中间件中的{set:{a:'blah'}}的更新查询,以便在执行更新之前执行一些检查? 或者我知道更新查询可以在post中间件中访问, schema.post('update',function(){ var findQuery=this._conditions; // gives {_id:'blah'} var updateQuery=this._update; //gives {$set:{a:'blah'}} next(); }); 但是这太晚了,我需要在pre中间件中检查实际更新数据库之前。 我试图通过前中间件的这个“对象”,但无法find任何地方的updateQuery对象,而这个._update在前置中间件中是未定义的。 有没有办法做到这一点? 谢谢

Express.js和Angular.js项目的文件夹结构

我正在M * EAN Stack(MySQL)下开始一个新的项目,想知道如何构build它,我将使用John Papa的 Angular项目的样式指南 ,但是这非常酷,特别是对于LIFT原则。 Express有点麻烦,它有它自己的MVC结构,可以处理路由,模型,视图等等,但是我想用Angular来处理,我希望Express只是一个RESTful API。 我一直在想要使用的文件夹结构是: ├── node_modules ├── app │ ├── client │ │ ├── app.module.js │ │ ├── app.config.js │ │ ├── users | │ │ ├── users.module.js | │ │ ├── users.config.js | | | ├── admins.view.html | | | ├── admins.controller.js | | | ├── registered.view.html | […]

React-Router Router.HistoryLocation刷新页面

我正在使用React-Express-Node应用程序并专注于SPA。 我正在使用react-router。 我的server.js文件看起来像这样(只有路由部分): app.use(function(req, res, next) { Router.run(routes,function(Handler, state) { var ele = React.createElement(Handler); res.render(path.join(__dirname + '/public/index'), {html: html}); }); next(); }); 路线文件有这个代码(粘贴主要部分): module.exports = ( <Route name="app" path="/" handler={Main}> <Route name="about" path="about" handler={About}/> <Route name="about/id" path="about/:id" handler={About}/> <DefaultRoute name="default" handler={Home} /> </Route> ); 和client.js看起来像这样: Router.run(routes, function(Root,state){ React.render(<Root />,document.getElementById('app')); }); 这个设置工作正常没有任何问题。 现在,我想使用历史API推送状态,以便我可以有更好的url和摆脱#。 为了做到这一点,我添加了Router.HistoryLocation作为client.js中的第二个参数,它工作,它删除#和干净的url。 但是,我的页面刷新,我不想要的。 我已经search了这一切,并find了一些解决scheme,但他们要么使用Flux或自定义路由器。 […]

我可以在没有–harmony标签的情况下运行Koajs吗?

自iojs合并到节点。 我假设我可以在没有–harmony标签的情况下运行koajs(因为它将支持es6的生成器)。 所以在我的server.js文件中我有: var koa = require('koa'); var app = koa(); app.use(function *(){ this.body = 'Hello World'; }); app.listen(3000); 我的package.json文件有"koa": "^1.1.2" 。 我运行node server.js并得到: app.use(function *(){ ^ SyntaxError: Unexpected token * 任何想法,为什么它抱怨? 我还需要使用–harmony标签吗? 谢谢!

在Angular2中保护API密钥

我现在一直在Google上search。 可能是我错过了正确的关键字。 我有以下设置: ExpressJS API(在端口3000上使用pm2运行) Angular2应用程序 – 通过nginx提供 两者都在同一台服务器上运行。 调用api(mydomain / api /)代理127.0.0.1:3000 对于需要授权的api调用,我将使用JWT和用户authentication。 我想要实现的是,我为我的angular2应用程序生成一个令牌,允许/需要进行公共呼叫(例如产品清单)。 当然,我不希望别人通过直接的API调用(盗用令牌)来获取我的产品和价格。 任何帮助赞赏。

使用Express限制对Node.js的访问

我确实有一个运行在服务器上的node.js脚本。 我想要的是,它不会直接从浏览器访问,也希望只有某些域/ IP-s可以调用它! 可能吗?!

socket.io + redis + expressjs集群 – 在expressjs请求中获取套接字对象

基于这个答案的问题: https : //stackoverflow.com/a/18650183/4478897 我试图find这个解决scheme,但似乎没有任何工作,我需要的方式。 expressjs和socket.io我们可以使用redis共享会话,并在io世界里发送io消息( io.sockets.on('connection', …)。问题是如果我们想发送消息(或者使用简单的socket.join/leave )在expressjs世界( route.get/post )中。 如果我们不使用集群,我们可以将客户端socket对象连接到表示request对象(或简单地export io对象),然后在任何GET / POST路由上随时使用它。 另一方面,如果我们正在使用上面提到的方法获取expressjs世界中的socket对象,有时socket对象是未定义的,因为此客户端的socket对象是在其他worker初始化的。 一些示例stream程: 客户端连接到http:// localhost , worker 1处理这个请求。 页面加载后,客户端连接到socket.io 。 Worker 2处理这个连接。 客户端执行一个POST,并且worker 1或worker X处理这个请求。 在这种情况下,当客户端执行POST时,只有worker 2知道该客户端的socket对象。 所以这将得到一个未定义的socket对象。 所以,这个问题: 我们如何从任何worker获取客户端socket对象来在expressjs request对象上重用它。 也许我的代码是错误的,但几乎就像上面提到的答案的链接。 笔记 不想使用某种代理。 不想迁移到其他库(expressio,sockjs …) 对不起我的英语不好 :) 使用最后一个nodejs,socket.io,expressjs,socket.io-redis,redis …版本 不要犹豫,问问题! 更新1 可能的解决scheme,但仍然需要testing它。 不知道这是否是一个非常好的解决scheme。 更新3 :工作代码在我自己的答案 更新2 像更新1,但使用https://nodejs.org/dist/latest-v5.x/docs/api/cluster.html#cluster_event_message

快速应用程序不断logging/ sockjs节点/信息

我已经运行这样的标准快递生成器: express blog –hbs –git 然后做一个安装,并尝试运行应用程序: cd blog npm install DEBUG=blog:* npm start 该应用程序启动,我可以看到浏览器中的加载页面,但是我不断得到正在打印的以下日志行: GET /sockjs-node/info?t=1459184976170 404 54.682 ms – 1060 GET /sockjs-node/info?t=1459184981971 404 8.142 ms – 1060 为什么这个,configuration有问题吗? 我如何纠正这一点? Express生成器 – http://expressjs.com/en/starter/generator.html