Tag: javascript

会话pipe理,用于node + express js中的多个并发用户

我正在尝试使用移动设备作为pipe理员login,成功login后,我在响应头中设置了Cookie。 同时,当我尝试从其他设备(笔记本电脑)访问路由时,我从其他设备获得所有pipe理员访问权限。 如何为多个用户维护会话? 此外,问题是我试图保持全局对象(login/注销button的基础上,如果用户在login或不)的视图状态与服务器端呈现丢失。 我的意思是所有的JavaScriptvariables数据(在我的情况下DataMixin对象)都会丢失。 如何开发同构riotjs应用程序? 请参阅reactJs中的类似问题: https : //github.com/reactjs/react-chartjs/issues/57 州: document.addEventListener('DOMContentLoaded', function (e) { DataMixin = { //Global object setAuthentication: function(){ if(arguments[0] != null){ localStorage.setItem('role', arguments[0][0]); localStorage.setItem('loginStatus', arguments[0][1]); } }, getRole: function(){ return localStorage.getItem('role'); }, } } 视图: <a href="#" if="{DataMixin.getRole() == ROLE_USER}">ADMIN LOGIN</a> <li if="{DataMixin.getRole() == 'ROLE_ADMIN'}"> <a onclick="{logout}">LOGOUT</a> </li> 使用node + express从服务器端加载页面: […]

将前端的值传递给后端,而不使用url

我有一个平均堆栈应用程序。 在后端,我有api.js : var express = require('express') var router = express.Router(); var body = 'response.send("hello fixed")'; var F = new Function ("request", "response", body); router.get('/api/special', F); module.exports = router; 因此,在浏览器中https://localhost:3000/api/special返回hello fixed 。 现在,我想让前端定义body的内容。 例如,我可以在网页上制作一个textarea,用户可以随意input例如response.send("hello flexible") 。 然后,我需要将这些内容传递给nodejs,以便https://localhost:3000/api/special现在返回hello flexible 。 有谁知道如何做到这一点? 编辑1:继李安李的评论,我修改了api.js : var express = require('express') var router = express.Router(); router.put('/endpoint', function (req, res, next) […]

循环中的JavaScript属性更新,使用上一个值重置所有以前的值

[{ "_id": "5987496838099514948b4a1c", "availableServices": [{ "_id": "598750d238099514948b4a33", "serviceType": { "_id": "59874b3438099514948b4a20", "uniqueIdentifier": "AC", }, "serviceSubTypes": [{ "_id": "598750d238099514948b4a34", "serviceSubType": { "_id": "59874b5638099514948b4a21", "displaySubTypeName": "DRY SERVICE", "minimumServiceCost": "399", "zonalMinimumServiceCost": [{ "_id": "59874b5638099514948b4a22", "minimumServiceCost": "399", "zone": "5987496838099514948b4a1c", "providerPrice": [{ "_id": "59a3007ee8c1cb276c042e64", "minimumServiceCost": "400", "provider": "598752c6265bbd162009ef35" }] }, { "_id": "599da2247910831a3c9b90aa", "minimumServiceCost": "399", "zone": "599da2247910831a3c9b90a8", "providerPrice": [] }], […]

我不能让Cors中间件在我的Node.js应用程序中工作

我正在尝试使用Cors中间件,但它不工作 我遵循文档中的简单说明,但我仍然得到这个可怕的错误。 Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:63342' is therefore not allowed access. 谁能帮我? 这是我的后端API的index.js文件,我试图实现中间件。 const express = require('express'); const passport = require('passport'); const http = require('http'); const morgan = require('morgan'); const LocalStrategy = require('passport-local').Strategy; let path = require('path'); let mongoose […]

如何使用socket.io和node.js将数据写入JSON文件?

我想从用户获取数据,并使用以下代码将其写入到我的json文件中: var fs = require('fs'); module.exports = function (io) { io.on('connection', function (socket) { socket.on("search list", function(search_data){ // write my object to JSON document let data = JSON.stringify(search_data); // {"name": "John", "age": "25"} fs.writeFile('./list.json', data, (err) => { if (err) throw err; console.log('Data written to file'); }); }); }); }; 我的控制台中有一条消息:“写入文件的数据”。 但是我的./list.json仍然是空的。 为什么? 我的websocket.js文件和list.json放在同一个文件夹中。

节点8.4.0已经安装 – 但节点-v显示v7.7.4

我试图升级我的节点版本,我从他们的网站下载文件,运行安装,一切似乎确定。 当我试图检查是否已安装最新版本时, node -v显示我v7.7.4而不是v8.4.0 。 我试过brew upgrade node但它告诉我node 8.4.0 is already installed 。 我如何切换到最新版本? 谢谢!

单独的信息和错误日志bunyan

正如我在博客中看到许多日志,我发现bunyan适合于日志logging,但它有问题,它不能根据他们的级别login文件。 下面是我正在关注的代码结构 const RotatingFileStream = require('bunyan-rotating-file-stream'); const bunyan = require('bunyan'); var log = bunyan.createLogger({ name: 'ShotPitch', streams: [{ name: 'info', level: 'info', stream: new RotatingFileStream({ path: 'info.%d-%b-%y.log', period: '1d', // daily rotation totalFiles: 10, // keep 10 back copies rotateExisting: true, // Give ourselves a clean file when we start up, based on period threshold: […]

请求我的MEAN应用程序后req.body.username未定义

当我向我的MEAN应用程序发出请求时,我将req.body.username设置为debugging时未定义。 以下是我的路线文件: var mongoose = require('mongoose'); var express = require('express'); var passport = require('passport'); var User = mongoose.model('User'); var auth = require('../auth'); var router = express.Router(); router.post('/users', function (req, res, next) { var user = new User(); user.username = req.body.username; user.email = req.body.email; user.setPassword(req.body.password); user.save(function (err) { if (err) { return next(err); } return res.json({ […]

在URL中获取一个没有名字的文件

我想从这个url获取文件: https : //donnees.roulez-eco.fr/opendata/instantane 正如你所看到的,URL中没有文件名。 我的问题是这个简单的代码: var file = fs.createWriteStream('./myFile.zip') http.get(url, function(response) { response.pipe(file); } 如果你有像https://someurl.com/filename.zip这样的url,这个代码就可以运行。 该文件被下载,可以使用,但这response.pipe(file)行抛出我这个错误: events.js:163 throw er; // Unhandled 'error' event ^ Error: Parse Error at TLSSocket.socketOnData (_http_client.js:411:20) at emitOne (events.js:96:13) at TLSSocket.emit (events.js:191:7) at readableAddChunk (_stream_readable.js:178:18) at TLSSocket.Readable.push (_stream_readable.js:136:10) at TLSWrap.onread (net.js:559:20) 我应该怎样做才能解决这个问题?

Electron:__是针对不同版本的Node.js编译的

当试图使用electron-installer-dmg在macOS Sierra上打包电子应用程序时,我得到以下结果: Error: The module '/Users/august/projects/node_modules/macos-alias/build/Release/volume.node' was compiled against a different Node.js version using NODE_MODULE_VERSION 54. This version of Node.js requires NODE_MODULE_VERSION 57. Please try re-compiling or re-installing the module (for instance, using `npm rebuild` or `npm install`). at Object.Module._extensions..node (module.js:598:18)<br> at Module.load (module.js:503:32)<br> at tryModuleLoad (module.js:466:12)<br> at Function.Module._load (module.js:458:3)<br> at Module.require (module.js:513:17)<br> at require […]