Tag: 表示

表示不提供静态文件

我有问题使用快递服务静态JavaScript文件。 我已经尝试了许多不同的快速文档的变化无济于事。我也尝试了很多对S / O类似问题的答复。 我的文件夹结构是 -MyApp -client -server -public foo.js server.js server.js: require('rootpath')(); var express = require('express'); var app = express(); var cors = require('cors'); var bodyParser = require('body-parser'); var expressJwt = require('express-jwt'); var config = require('config.json'); var path = require('path'); app.use(cors()); app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json()); // use JWT auth to secure the api, […]

页面不工作错误,节点js冻结

我第一次使用Node,在某个响应被触发时遇到麻烦。 在这种情况下,我正在检查用户名和密码是否与DynamoDB中的用户名和密码相匹配。 当用户名和密码不匹配我的数据库时,它redirect到我的页面,但是当它,我所有的console.log输出打印两次(这显然是与Chrome中的favicon有关),如“在线”和“ [pw] + database.js“,但它也冻结了我的IDE和terminal。 然后我在浏览器中看到“页面不工作,本地主机没有发送任何数据”错误。 忽略隐私问题:)想法? database.js: var myDB_lookup = function(username, password, route_callbck){ console.log('Looking up: ' + username); users.get(username, function (err, data) { if (err) { route_callbck(null, "Lookup error: "+err); } else if (data == null) { route_callbck(null, null); } else { // JSON object that stores password & fullname var value = […]

在Express Response中使用特殊字符(变音符号)

我正在使用Express来提供像这样的文件下载: const fileStream = Storage.getFileStream(path); res.setHeader('Content-disposition', `attachment; filename="${filename}"`); res.setHeader('Content-type', contentType); res.setHeader('Content-length', size); fileStream.pipe(res); 当filename包含特殊字符(Ä,Ü,è,…)时会抛出一个错误,说我正在使用不允许的字符。 我发现使用unidecode的解决scheme。 但是有没有一个解决scheme保持“Ä”而不是将其转换为“A” 我search这个问题,但我很困惑如何处理这个正确的方式,所以原谅我,如果这个问题是重复的… … – 解决scheme(稍后添加):我发现这个解决scheme适用于我,并保留文件名中的所有特殊字符: const filename = encodeURI(file.filename); res.setHeader('Content-disposition', `attachment; filename*=UTF-8''${filename}; filename=${filename}`); res.setHeader('Content-type', contentType); res.setHeader('Content-length', size);

节点js,Express和句柄渲染fullcalendar插件无法正常工作

我一直无法实现fullcalendar到我的应用程序,并找不到任何信息详细说明如何实现它使用节点,快递和句柄。 我已经尝试了多种方式来添加fullcalendar没有任何运气。 在我的应用程序的其他网页正在工作,并提供他们的信息,所以我不知道为什么fullcalendar后按照网站上的说明不起作用。 <!– main.handlebars –> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M" crossorigin="anonymous"> <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous"> <!– Page level plugin CSS–> <link href="vendor/datatables/dataTables.bootstrap4.css" rel="stylesheet"> <!– Custom styles for this template–> <link href="css/sb-admin.css" rel="stylesheet"> <link href="css/style.css" rel="stylesheet"> <!– Link and script for […]

如何在callback函数中使用express.send(例如nodejs中的mysqljs使用)

我在express中使用express和mysqljs。如果我要求我的数据库添加一个用户,我必须定义一个callback函数来处理响应。 不幸的是,我不能在callback函数中表示res.send。我想发送insertID到res.send方法。我怎么做? 这是我的代码。 app.post("/adduser", (req, res) => { const con = mysql.createConnection({ host: "localhost", user: "root", password: "", database: "customer" }); const name = req.body.name; const age = req.body.age; const users = { name: name, age: age }; const query = "INSERT INTO users SET ?"; con.query(query, users, (err, res) => { if (err) throw […]

部分用于应用程序

有没有可能使用Angular而不是所有的应用程序,但只有一些部分? 我使用Express作为服务器端,并且已经制作了几个页面。 我应该重build它们还是只能使用Angular作为一些部分?

SequelizeInstance对象不在Express Handlebars视图中呈现(NodeJS,Express)

使用NodeJS,Express和Sequilize, 当我用res.render()调用实际数据实例值的时候,我正在渲染视图[对象SequelizeInstance:Todo],但是当被.send调用时(参见下面的注释行),数据实例值被发送到视图。 exports.test_todo_view = function(req, res) { return Todo .findAll({ //attributes: ['id'] //select fields }) //.then((todos) => res.status(200).send(todos)) .then((todos) => res.render('test/test_view', {layout: 'ca_layout.handlebars', test_data: todos})) .catch((error) => res.status(400).send(error)); } 输出是数据库中每个条目的[object SequelizeInstance:Todo]。 任何人都可以build议吗? 它工作,即我可以看到数据 – [{“id”:1,“title”:“fasdfsd”,“createdAt”:“2017-11-15”,…]当我使用.send(todos)如图所示。 我正在使用以下来调用视图。 app.get('/test/view', authCarePlan.test_todo_view); 我的.handlebars文件看起来像这样 <div>test_data:{{test_data}}</div> 我希望查询输出通过test_data

是否有可能在客户端的HTML脚本标签内使用express-handlebars标签?

我一直在这个问题上奋斗了很长时间了。 我正在使用express-handlebars创build一个应用程序,并且该应用程序的最大部分工作正常。 我想要显示在我正在做的网页上的大部分数据都显示得很好,我正在使用express-handlebars模块的Helper函数。 现在,卡住的部分如下。 在我的应用程序中使用的HTML模板之一中,我正在使用Google Maps JS API在标签上显示包含多个位置的地图。 这些位置来自MongoDB数据库,就像我在本页面上显示的所有其他模板数据一样。 数据在这里作​​为我想要迭代的对象数组来到客户端,过滤出地址,将它们地理编码为正确的格式并将其显示在Map中。 这里的问题是,我可以把这个数组放到页面中,但是我无法进入到可以迭代的对象中。 有没有什么办法可以在脚本标签中获得这个位置数组,所以我可以迭代它们在Map视图中显示它们?

如何在Nexus NPM库中上传第三方库?

我已经创build了节点应用程序,在我的应用程序中,我使用了一些第三方库,例如Express。 如果我从https://registry.npmjs.org安装它,这一切都运行正常,没有任何问题。 但由于一些安全原因,我不想从npm registery下载它,而是希望它应该从我的私有存储库下载(我们正在使用Nexus OSS作为私有存储库)。 问题是我无法在Nexus Registery中find上传Express模块​​的方法。 我发现使用Npm代理的一种方式,但出于安全原因,我们不能使用它。 有谁知道如何上传第三方库到Nexus npmregistry?

所有的file upload快速js使用busboy后回电

我有一个快速申请与多个上传。 我正在使用busboy访问multipart。 我必须将文件发送到外部API服务器。 目前,我正在使用fs.createWriteStream()将所有file upload到目录,然后在使用fs.createReadStream读取文件fs.createReadStream ,将文件发送到外部API服务器。 上传所有文件并读取所有文件后,如何获得callback函数? 否则,我可以直接将文件发送到外部服务器,而无需将其保存在快速服务器中? 这是我的代码, exports.create(req, res, next) => { req.pipe(req.busboy); let fileCount = 0; let filesToSent = []; req.busboy.on('file', (fieldname, file, filename, encoding, mimetype) => { let fileNameArray = filename.split('.'), fileExtension = fileNameArray[fileNameArray.length – 1], d = new Date(), fileNameToSave = d.getFullYear().toString() + (d.getMonth() + 1).toString() + d.getDate().toString() + d.getTime().toString() […]