Tag: 表示

Jade:模板文件是每npm启动的吗?

正如在标题中所说的,当我启动我的应用程序服务器(例如通过terminalnpm start )时,是否加载了模板文件 ? 如果是这样的话,我认为使用更深的模板层次结构会消耗更多的CPU资源。

如何通过Express中的路由传递variables

app.js var express = require('express'); var app = express(); var testVar = "Hello World"; var index = require('./routes/index'); app.use('/', index); index.js var express = require('express'); var router = express.Router(); router.get('/', function(req, res) { console.log(testVar); }); module.exports(router); 如何在./routes/index.js中传递variables“testVar”? 有人有一个想法? 提前致谢!

在Express中使用子路由器时,获取完整的路由器模式?

假设我在以下Express应用程序中请求HTTP端点GET /foobar/baz ,我如何通过req对象获取用于匹配整个URL的原始模式(即/foo(bar)?/:id ): var app = express() var sub = express.Router() sub.get('/:id', function (req, res, next) { // if `/foobar/baz` is requested: console.log(req.url) // '/baz' console.log(req.baseUrl) // '/foobar' console.log(req.originalUrl) // '/foobar/baz' console.log(req.route.path) // '/:id' }) app.use('/foo(bar)?', sub) 使用req.route.path可以访问子路由模式,它给了我/:id ,但是父路由模式/foo(bar)? 似乎无法获得。

如何使用适当的path来设置节点项目来打开组件文件

我正尝试从这里运行示例应用聊天应用程序。 示例聊天我已经安装了所有的节点模块和凉亭组件。 我有所有3个项目在命令提示符运行没有错误。 但我不知道为什么凉亭组件没有被发现? 我已经做了一些search,但我发现一些解决scheme没有奏效。 除了404错误以外,没有其他的错误信息。 相关的代码(我相信)。 总共包含3个项目,其中包含引用path的文件我也正在使用chat-main-app中的windows 10 app.js var express = require('express'), path = require('path'), cookieParser = require('cookie-parser'), bodyParser = require('body-parser'); var routes = require('./routes'); var app = express(); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'ejs'); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); app.get('/', routes.index); app.set('port', process.env.PORT || 3000); […]

我应该streamhtml文件,而不是只渲染?

我正在试验node.js / express.js,并认为pipe道html文件的请求,而不是只是渲染。 我希望能够获得更好的性能,并且html文件将会首次加载更快。 //instead of res.render('form',{title:'Login',userField:'Username',passField:'Password',photo: photo}); //I do var path = 'views/form.ejs'; var stream = fs.createReadStream(path); stream.pipe(res); This is actually about 10ms faster, even with a small file (385 bytes). I am developing so my files are still really 小。 我发现唯一的答案是,我不能在响应像userFieldembeddedEJS数据:'用户名' 1-我在这种情况下使用pipe道吗? 2-有没有其他的优点和缺点? 3-我是否过度使用它? 我应该只使用渲染,因为差异很小,或与缓慢连接 大的HTML,pipe道实际上节省了一天? 谢谢

从Redis返回数据仅仅是第二次

我正在使用Redis数据库并为api表示路由。 也使用node.js和ioredis。 我连接到Redis,然后获取所有与inputdate相关的密钥,然后获取与每个密钥相关的所有数据。 但是对我来说奇怪的是,这一切都是有效的,但只是在请求它的第二次刷新页面上。 所以在第一次加载页面(比如blah.com/api/20120120)时,它将返回一个空的数组。 然后,如果刷新页面,它将返回正确的数据。 HomeController.js: var theData = []; function getData (date) { redis.on('ready', function (res) { var keys = []; var stream = redis.scanStream( { match: date + '*', count: 1000 } ); stream.on('data', function (resultKeys) { for (var i = 0; i < resultKeys.length; i++) { keys.push(resultKeys[i]); } }); stream.on('end', function […]

embedded式JS Partials – 确定用户是否已login

我正在尝试在nodejs中设置用户authentication。 我使用embedded式js作为视图引擎。 我正试图显示一个不同的模板,用户是否login。 我查看了此页面以确定用户是否已login 如何知道用户是否使用passport.jslogin? 在标题部分,我希望用户只能看到login和注册链接,如果他们没有login。我包括这个ejs。 <header> <% include header %> </header> 然后在我的标题部分,我有这个 <ul class="nav navbar-nav"> <% if (!req.user) {%> <li><a href='login.ejs'>Login</a></li> <li><a href='register.ejs'>Register</a></li> <% } %> </ul> 这是我的routes.js文件 module.exports = function(app) { app.set('view engine', 'ejs'); app.use(express.static(path.resolve('shapes'))); app.get('/', function(req, res) { res.render(path.resolve('shapes/index')); }); passport.serializeUser(function(user, done) { done(null, user); }); passport.deserializeUser(function(user, done) { done(null, user); }); […]

将http响应从节点映射到json文件

我正在研究一个解决scheme,其中Web服务器(具有express的节点)将使用请求包从Web API获取数据。 数据返回(如果包含validation错误状态码),将再次匹配该值并返回相应的错误消息。 怎么可能实现? 这将是这样的: var options = { method: 'POST', url: 'apiUrl' } var response = function (error, response, body) { if(!error && response.statusCode == 200){ res.jsonp(body); } else { if (body.language == 'en') { // map the reponse body error status code to en.json } else if (body.language == 'jp') // map the […]

如何使用express和handlebar或其他模板引擎在node.js中呈现rest API调用?

用例 使用Node.js,Express和像Handlebars这样的模板引擎来查询其他API,如Wordpress和CouchDB并呈现结果。 我已经走了那么远 var https = require('https'); var express = require('express'); var handlebars = require('express-handlebars') .create({ defaultLayout:'main' }); var app = express(); app.engine('handlebars', handlebars.engine); app.set('view engine', 'handlebars'); app.set('port', process.env.PORT || 3000); app.set('ip', process.env.IP); var options = { hostname: 'public-api.wordpress.com', path: '/rest/v1.1/sites/somesite.wordpress.com/posts/16', method: 'GET' }; app.get('/test', function(req, res) { https.request(options, function(restRes) { console.log('STATUS: ' + restRes.statusCode); […]

错误:使用MEAN w / Heroku

我只是从数据库中获取数据,并使用ngRepeat将其显示在html文件中。 连接到数据库是成功的,我可以添加数据。 还有客户端的一切工作,因为我能够在一个定义的数组中显示ngRepeat div中的数据。 所以问题必须在.get()方法的某个地方,但我不知道它是什么。 有什么build议么? server.js var express = require('express'); var mongojs = require('mongojs'); var MongoClient = require("mongodb").MongoClient; var app = express(); var port = process.env.PORT || 3000; var db = mongojs('heroku_1x6kasdf'); var plantList = db.collection("plantList"); app.use(express.static(__dirname + "/")); MongoClient.connect(process.env.MONGOLAB_URI, function(err, db) { if (err) throw err; console.log('SUCCESS! Connected to heroku_1x6kasdf database'); app.get("/", function(req, […]