Tag: 表示

把其他的逻辑放在server.js文件中

我有server.js文件,这是我的节点应用程序的起点,也负责调用3个不同的function(这个function只是调用一次,当服务器启动,像创buildchildProcess,validaton等function)这是好的。 我的问题是 我应该把这个逻辑(下面的3个函数)放在控制器文件夹中的不同文件中,或者将其保存在server.js文件(SOC?)上? 如果我把这些函数调用在不同的文件(在控制器文件夹中),我应该通过事件调用这些函数(如事件serverIsUp …)这种方法的例子将是非常有用的 server.js看起来像下面(简称…) http.createServer(app).listen(app.get('port'), function (err) { if (err) { console.error(err); } else { console.log('server listening on port ' + app.get('port')); } }); … //Here it the function which is called when the server is up and running childProcess.createProcess() ; fileParser.parse(); invokeValidations();

如何在视图中创buildhref链接,指向Express路由?

我想在我的视图中创buildhref链接,但我不想指向一个静态地址。 我想dynamic创build基于路线的hrefurl。 例: // app.js: app.get('/test', function testPage(req, res, next) { // do something here }); // inside view.html: <a href="path('testPage')" /> // something similar <a href="/test" /> I do NOT want this! 我错过了什么,或者没有办法轻易做到这一点? 我search了,我发现app._router.stack有所有路线。 但他们只是一个普通的arrays,所以他们没有任何forms的身份证或平等! 我想到的是一个函数,它parsing所有的路由(从堆栈),得到他们的名字 , 只有当函数有一个名字 ( http://expressjs.com/4x/api.html#req.route ),然后用键(路由名) – >path创build一个对象。 然后我可以使用这个函数(不知何故)在视图内创buildpath,对不对? 任何更好的想法?

决定Multer中间件的上传文件夹位置

所有: 我是Express.js的新手,当我用Multer( https://github.com/expressjs/multer )处理file upload时,我指定了一个multer中间件对象: var upload = multer({dest: 'uploads/'}); 但有一点让我困惑的是:无论我在哪里把这行代码(无论是在子路由器文件,或app.js),它总是创build“上传”文件夹项目根目录下(app.js,视图,路由,公共…位置),即使我将其更改为“./uploads/”,它仍然会在项目根目录下创build上传文件夹。 这让我很困惑,因为当我将它与require()函数进行比较时,似乎require()使用的相对path是基于调用它的位置而multer不是? 我想知道我的理解是否正确? 如果我的正确,如何将其更改为相对? 谢谢

Express.js路由API无法提供全部路由

我是MEAN的初学者,使用express.js构build了一个API var User = mongoose.model('User'); router.get('/users', function(req, res, next) { User.find(function(err, users){ if(err){ return next(err); } res.json(users); }); }); 这是我在index.js中创build的路线 router.get('/', function(req, res, next) { res.render('index'); }); API使用这条路线工作的很好,但是当我改变上面的路由到一条“全path”的路线 router.get('*', function(req, res, next) { res.render('index'); }); 该API没有工作(我用Postman的),它返回index.ejs页面,而不是一个JSON响应。 有人可以解释为什么发生这种情况,我想使用全path,并希望API的工作。

如何在Node.js的Express.js GET GET多个variables?

我试图从HTML页面获取表单数据到Node Js服务器。 我的html文件是index.html <body> <nav> <ul> <li> <a href="#" class="button add">Add Product</a> <div class="dialog" style="display:none"> <div class="title">Add Product</div> <form action="" method="get"> <input id = "name" name="name" type="text" placeholder="Product Name"/> <input name="code" type="text" placeholder="Product Code"/> <input name="category" type="text" placeholder=" Category"/> <input name="brand" type="text" placeholder="Brand"/> <input type="submit" value="Ok"/> </form> </div> </li> <li class="radio"> <a href="#" class="button active"></a> […]

有没有一种方法可以在REST API中访问Express的应用程序?

查看Massive的文档 ,保存数据库连接执行时间的方法是将连接对象保存一次到Express的应用程序设置。 我的问题是,如何在REST API模块化时访问Express的应用程序variables? 问题的一个例子: app.ts: import express = require('express'); import greeter = require('./api/greeter'); var app = express(); app.get('/api/greeter', greeter.get); greeter.ts: import express = require("express"); function get(req: express.Request, res: express.Response, next: Function): any { // The this object seems not the Express's app object. // console.log(this) // How to access Express's app variable here? // […]

RethinkDB和Node.js / Express – 为并行查询打开多个连接?

使用RethinkDB节点驱动程序运行并行查询比每个请求打开多个连接更好吗? 或者,这实际上是一个很好的方式去做我需要的东西? 我宁愿远离连接池/第三方软件包。 有问题的应用程序有一个单独的包含RethinkDB查询的函数。 这些函数处理创build和closures连接。 这种模式允许我以最小的开销在多个路由器中请求数据库服务,而不必知道每个请求。 被解释的例子来解释被查询的数据如何不相关: database.js var r = require('rethinkdb'); module.exports = { getApples: function(callback) { r.connect(/* config */) .then(function(conn){ r.db('fruitDatabase').table('apples').run(conn) .then(function(cursor){ return cursor.toArray(); }) .then(function(apples){ return callback(null, apples); }) .finally(function(){ return conn.close(); }); }); }, getPotatoes: function(callback) { r.connect(/* config */) .then(function(conn){ r.db('vegetableDatabase').table('potatoes').run(conn) .then(function(cursor){ return cursor.toArray(); }) .then(function(potatoes){ return callback(null, potatoes); }) […]

使用Express设置React应用程序

我第一次在这里发表,我对networking开发完全陌生,所以如果在这里有类似的东西(我有一个很好的search),我提前道歉! 总之,我正在制作一个应用程序,根据用户的searchinput从Instagram获取图像。 挺容易。 但是,我正在使用Node和Express服务器端和React客户端,我已经search了很多React教程,Express教程,我很困惑如何开始。 每个教程都使用不同的依赖关系(我曾尝试Google了解它们的工作原理),并且在某些时候并不明确将代码放在哪里 – 我已经看到了app.js,server。 js,templates.jsx。 希望有人可以用外行的话来解释,帮助我们新手。 所以基本上,我想了解如何设置我的应用程序和我将需要什么文件,例如app.js包含此代码,server.js包含此代码等等,以便至less有东西显示在我的网页上。 到目前为止,我有这样的: // in my app.js var express = require('express'), app = express(); app.use(express.static('public')); app.get('/hashtag/:hashtag', function(req, res) { var token = (removed); // this is where id fetch instagram imgs }); var server = app.listen(3000, function () { var host = server.address().address; var port = server.address().port; […]

将variables传递给node.js中的res.render?

我是node.js的初学者 我的index.ejs文件有一个包含header.ejs文件。 除了我不能将值传递给header.ejs的variablesstatus以外,一切运行良好。 index.ejs <html> . . <title> <%= title %> </title> . . <% include ../partial/header.ejs %> . . </html> header.ejs <header> . . <p>logged in status: <%= status %> </p> . . </header> app.js . . . app.get('/', function(req, res) { // not working 🙁 res.render('index', { "status":"loggedin", "title":"home" }); }); . . […]

我如何处理expressjs应用程序中的意外错误以避免停机?

我如何处理expressjs应用程序中的意外错误以避免停机? 首先,我想使用try-catch方法来处理意外的错误,但它似乎只适用于同步代码。 我发现其他方法是使用nodejs域模块,但它似乎被弃用。 我正在使用快递生成器提供的标准error handling中间件来处理错误。 我也在我的应用程序中使用npm forever模块。 像永远一样使用进程监视器是否足够,或者我应该采取任何不同的方法来处理意外错误?