Tag: 表示

助手在快速把手

我在节点js中使用快速句柄作为模板引擎。 我已经编写了app.js中的handlebar的帮助器。 我怎样才能从hbs文件传递这些帮助参数。 helpers: { ifCondition : function (value, value2) { if(value == value2){ return "selected"; }else{ return value + '/ '+ value2; } }, formatNumber : function (number, limit){ var formattedNum = number.toString().replace(/[^0-9.]/g, ""); formattedNum = formattedNum.replace(/(\r\n|\n|\r)/gm," "); formattedNum = formattedNum.replace(/\s+/g," "); if(formattedNum){ return formattedNum = '00971'+ formattedNum.substring(formattedNum.length-limit, formattedNum.length); }else{ return '—'; } } […]

cassandra当前与节点js的时间戳

在下面的插入查询时,我使用dateof(now())它不起作用。 但新的date('2017-09-01 00:00:00 + 0000')这个工作。 请帮助我。 router.post('/recent_activities', function(req, res, next) { var body =req.body; console.log(body); console.log( body.id + body.setid); var query ="Insert into recent_activities (id,setid,companyid,activity_name,activity_date,activity_by) values (? , ?, ?, ?, ?, ?)" client.execute(query,[body.id,body.setid,body.companyid,body.activity_name, dateof(now()),body.activity_by], function(err, result) { if (err) { throw err; } else { console.log('success!'); } }); res.json({ id:201, message: 'All Success' }); […]

ExpressJS 4中间件问题

我试图用ExpressJS 4把我的头围绕在中间件上。 如果我正确理解的是,中间件是按照声明的顺序来应用的,你可以在不同的层次上“绑定”它们。 在这里,我试图在路由器级绑定一个中间件。 function middleware(req, res, next) { console.log("middleware"); res.write("middleware"); next(); } function handler(req, res) { console.log("OK"); res.status(200).send('OK'); } const router1 = express.Router(); const router2 = express.Router(); router1.get("/1", handler); router2.get("/2", handler); 除了在/test/1和/test/2上调用/test/1时打印OK 。 app.use("/test/", router2.use(middleware), router1); 但是输出似乎是倒置的,相当于: app.use("/test/", router2, middleware, router1); 我真正想要的只是第一台使用中间件的路由器。 换句话说,将中间件用于第一个控制器。 我可以很容易地交换router1和router2的顺序,但是我的其他要求是因为我的router2实际上使用了一个能够捕获所有请求( /:id )的路由,我需要最后一个。 我在这里错过了什么,我该怎么做我想要的? 编辑澄清: 我最终想要的是这样的东西: / |-test/ |-route // use […]

在Node,Express JS中发送URL参数

我有一个端点https:// www ..com 当我进行curl调用时,我的端点为https:// www。.com?param1 = true 我想从Nodejs做类似的调用,我不知道是否param1应该被传递在头,连接到端点或传递选项。 什么是正确的方式呢? 我的节点JS看起来像这样打电话给我的节点服务器和我的文件看起来如下, app.post('/thisway', function(req, res){ var ENDPOINT = req.body.endPoint //(this gets me till https://<url> part of the endpoint string) var urlToHit = ENDPOINT.concat("?param1=true") var headers = { 'Authorization': xxxxx, 'Accept': '*/*', 'X-Spark-Service-Instance': xxxxx } var options= { url: urlToHit, headers: headers, json: {xxxxxx} } request(options, callback); }

避免Express.Js添加页面url到文件path的行为

我正在使用node.js和express.js服务我的前端代码。 在这里,我正面临着我在不同页面URL上的script src提供的文件path的问题。 我的项目文件结构如下: react_jsx/ dst/ index.html styles.css main-62a2a28f9255e698905d.js // creating this file using a bundler. styles.css和main-62a2a28f9255e698905d.js都使用webpack捆绑器dynamic添加到index.html 。 但正确添加为<link href="style.css" rel="stylesheet"></head>和<script type="text/javascript" src="main-62a2a28f9255e698905d.js"></script> 节点服务器代码如下: const express = require('express'); const path = require('path'); const app = express(); app.use(express.static(path.resolve(__dirname, 'react_jsx/dst'))); app.use(express.static(path.resolve(__dirname))); // app.use('/react_jsx/dst',express.static(path.join(__dirname, ''))); app.use(express.static(path.join(__dirname, ' '))); app.get('*', (req, res) => { res.sendFile(path.resolve(__dirname, 'react_jsx/dst/index.html')); }); const PORT […]

Node.js中Express 4.0的res.rendercallback参数的目的是什么?

res.rendercallback参数的目的是什么? 在这种情况下,我们想使用这样一个callback参数,因为模板已经被指定为第一个参数? 以下是文档中的代码: // send the rendered view to the client res.render('index'); // if a callback is specified, the rendered HTML string has to be sent explicitly res.render('index', function(err, html) { res.send(html); }); // pass a local variable to the view res.render('user', { name: 'Tobi' }, function(err, html) { // … }); 我理解前两个论点的目的,但不是最后一个。

如何在Stampery API.JS文件中设置API密钥

我正在努力设立St。。 我无法弄清楚在这个API.JS文件中设置stringAPI密钥的位置。 该文件说,将STAMPERY_TOKEN设置为API密钥不知道如何做到这一点。 任何帮助,将不胜感激。 Stampery的链接是https://github.com/stampery/office 。 'use strict'; const express = require('express'); const router = express.Router(); const bodyParser = require('body-parser') const Stampery = require('stampery'); const development = process.env.NODE_ENV !== 'production'; const stamperyToken = process.env.STAMPERY_TOKEN; var proofsDict = {} if (!stamperyToken) { console.error('Environment variable STAMPERY_TOKEN must be set before running!'); process.exit(-1); } //var stampery = new […]

如何使用快递从服务器下载文件

我正在使用node.js和expression。 我想在服务器上创build一个文件,然后在终点点击时下载。 这是我现在的代码。 router.get('/download', (req, res) => { const fileController = new FileController(); fileController.generateJSONFile() .then((file) => { fs.writeFile('fooFile.json', file, 'utf8'); }).then((success) => { res.download('fooFile.json'); }) .catch((error) => { res.status(500).send(); }); }); 我也想在下载完成后立即从服务器上删除文件。 如果有更好的方法来实现这个目标,我不需要使用res.download()。

从云端function获取随机维基页面

我试图通过Google Cloud Functions在他们的API上获得一个随机的Wikipedia页面。 维基百科API工作正常。 这是我的要求: https://de.wikipedia.org/w/api.php?action=query&format=json&generator=random 对于testing,您可以将格式更改为jsonfm,以查看浏览器中的结果。 点击这里 👍。 但是,即使在请求完全成功之前,我的函数似乎也被破坏了。 如果我想parsing数据(或者即使我想logging这些数据),我得到了一个 SyntaxError: Unexpected end of json 日志看起来像(例如)(不,我没有自己削减): DATA:ue ||“}”query“:{”pages“:{”2855038“:{”pageid“:2855038,”ns“:0,”title“:”Thomas Fischer 当然,这不是一个有效的JSON,不能被parsing。 不pipe这是我的function: exports.randomWikiPage = function getRandomWikiPage (req, res) { const httpsOptions = { host: "de.wikipedia.org", path: "/w/api.php?action=query&format=json&generator=random" }; const https = require('https'); https.request(httpsOptions, function(httpsRes) { console.log('STATUS: ' + httpsRes.statusCode) console.log('HEADERS: ' + JSON.stringify(httpsRes.headers)) httpsRes.setEncoding('utf8') httpsRes.on('data', […]

req.checkBody不是一个函数

我正在使用Mozilla Express教程( https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs/forms ),并使用express-validator来访问该部分。 当我提交一个表单,其内容使用express-validator进行validation时,我总是收到错误“req.checkBody不是一个函数”(如果我删除了生成该行的行,则会得到其他错误,如“req.sanitize is not一个函数“)。 似乎表示validation程序没有被正确识别。 我使用节点v6.3.1,无论它是值得的。 express-validator被安装 ├── async@2.5.0 ├── body-parser@1.17.2 ├── cookie-parser@1.4.3 ├── debug@2.6.8 ├── express@4.15.3 ├── express-validator@3.2.0 ├── moment@2.18.1 ├── mongoose@4.11.0 ├── morgan@1.8.2 ├── nodemon@1.11.0 ├── pug@2.0.0-rc.2 └── serve-favicon@2.4.3 我加载它的主要应用程序文件(app.js) var expressValidator = require('express-validator'); 并在下面的几行应用它 app.use(logger('dev')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(expressValidator()); // Add this after the bodyParser middlewares! app.use(cookieParser()); […]