Articles of expression

为什么带有全局标志的RegExp会给出错误的结果?

当我使用全局标志和不区分大小写的标志时,这个正则expression式有什么问题? 查询是用户生成的input。 结果应该是[true,true]。 var query = 'Foo B'; var re = new RegExp(query, 'gi'); var result = []; result.push(re.test('Foo Bar')); result.push(re.test('Foo Bar')); // result will be [true, false] var reg = /^a$/g; for(i = 0; i++ < 10;) console.log(reg.test("a"));

同时写入和读取节点stream

我试图下载一个video文件,然后立即开始stream式传输到客户端,我有他们都独立工作的stream,但我似乎无法得到我想要的function工作。 request.on('response', function (fileResponse) { fileResponse.pipe(fs.createWriteStream(`${__dirname}/../media/${channelName}/${media}.mp4`) } stream式传输现有video: const file = fs.createReadStream(`${__dirname}/../media/${channelName}/${media}.mp4`, {start, end}); const head = { 'Content-Range': `bytes ${start}-${end}/${fileSize}`, 'Accept-Ranges': 'bytes', 'Content-Length': chunksize, 'Content-Type': 'video/mp4', }; res.writeHead(206, head); 如果我把第二段代码放到最初的一段代码的响应事件中(试图创buildstream然后开始同时阅读),它不起作用。 我正在试图做技术上可能的stream? 谢谢!

数据传输对象(DTO)是否用Node.js / Express / MongoDB构buildREST API?

我是Node.js的新手,我是后端开发新手,所以这可能是一个愚蠢的问题。 比方说,我有这样的模型: var mongoose = require('mongoose'); var UserSchema = new mongoose.Schema({ name: String, birthDate: Date, email: String, profileImageUrl: String }); mongoose.model('User', UserSchema); module.exports = mongoose.model('User'); 我有一个userController函数来获取所有这样的用户: getUsers : function(req, res){ User.find({}, function (err, users) { if (err) return res.status(500).send("There was a problem finding the users."); res.status(200).send(users); }); }, 但是,假设我不想在我的列表中返回birthDate(好吧,我将使用投影),但是我想添加一些额外的属性,我要从其他文档中计算或填充,例如 – numberOfSentMessages,numberOfFollowers等 据我所知,这是一个.net开发人员将使用数据传输对象(DTO)或ViewModel,将有我想返回的属性的情况下,如下所示: UserDTO – name […]

Xregexp javascript可选命名组由空格分隔

我正在寻找一个支持以字母开头的命名参数的Xregexpexpression式。 这是我的expression: (?:d:|duration:)(?<time>.*\S+).*(?:t:|title:)(?<title>(?:.*\S+))(?:.*(?:(?:p:|prize:)(?<prize>.*\S+))) 它运行良好,但问题是我想把p:<prize>组作为可选项,我应该使用哪个expression式? 有一个空白的时候,我也试图结束捕获 例: 我想要的是 : duration:1h 5m 1s title:Title test [p:prize]<-optionnal group 我想把prize组作为可选项 与当前expression式匹配: duration:1h 5m 1s title:Title test p:Something random 分组结果: time : 1h 5m 1s time title : Title test prize : Something random

使用NODE.js的dynamic网页/ WebApp

我是networking开发新手,我已经开始学习NODE.js。 我想创build一个网站,将有login/注册和数据将是dynamic的。 我也开始学习html5,css3和bootstrap。 我将使用Express框架进行开发。 我的担心是 如何开始? 我将如何使用NODE.js制作dynamic网页? 我必须使用模板引擎或react.js吗? 我应该如何使用安全和身份validation? 我应该使用快递还是别的? 另外请让我知道使用NODE.js制作一个强大而安全的网页或网页应用程序的最佳做法

将前端的值传递给后端,而不使用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) […]

根据更新的字段调用函数

我想调用不同的function取决于更新的模型领域。 我的代码如下所示: update(req, res){ return LED .findById(req.params.LEDId) .then(LED => { if (!LED) { return res.status(400).send({ message: 'LED Not Found', }); } return LED .update(req.body, {fields: Object.keys(req.body)}) .then(() => res.status(200).send(LED)) .catch((error) => res.status(400).send(error)); }) .catch((error) => res.status(400).send(error)); }, 所以我的计划是集成一些if-clause来获取更改的值,并根据更改调用一些函数。 如果从句: if(req.body.status || LED.status){ BLE.changeStatus(req.body.device_ID,req.body.status); }else if(req.body.prog || LED.prog){ BLE.changeProg(req.body.device_ID,req.body.prog); }else if(req.body.white || LED.white){ BLE.changeWhite(req.body.device_ID,req.body.white); }else if(req.body.color […]

/ views和/ lib文件夹之间的区别?

我正在创build一个Express / React应用程序,我正在尝试了解基本的脚手架结构。 在我的根目录中,我有app.js ,当我运行npm run dev时调用脚本来启动一切: "dev": "pm2 start app.js –watch –interpreter ./node_modules/.bin/babel-node" ,就我所知,它相当于node app.js "dev": "pm2 start app.js –watch –interpreter ./node_modules/.bin/babel-node" 在我的app.js我设置了app.set('views', __dirname + '/views'); ,意思是每当一个app.get(…)被调用时,express就会查看指定文件的/views文件夹。 不过,我也有一个/lib文件夹,我见过很多其他项目。 我最终将在/lib/components内制作/lib/components 。 这是否意味着我有内部/views模板将require或从/lib/components import /lib/components ? 为什么不把所有的*.jsx文件保存在一个文件夹中? 或者/views只是为顶级模板..?

Angular + Node + Express:带sendFile方法的意外标记

我有点卡在这里。 我在客户端使用Angular 4编写Web应用程序,在服务器端使用Node / Express / Mongo编写REST API,并使用Auth0 API进行validation。 在服务器端,我提供静态文件和所有路由到Angular: const distDir = __dirname + "/dist/"; app.use(express.static(distDir)); app.get('/*', function(req, res) { res.sendFile(path.join(__dirname + '/dist/index.html')); }); 没有提供所有的Angular应用程序的app.get方法,我得到一个404错误(例如不能GET /callback)。 问题是sendFile发送一个html文件,无论调用什么。 在我的应用程序中,第一次调用的是js文件,如“networking”选项卡(auth0.min.js)中所示。 所以我得到这个错误: ERROR SyntaxError: Unexpected token < in JSON at position 0 at JSON.parse (<anonymous>) at e.CPp0.t.json (vendor.b69a8a4fa217eba4fba0.bundle.js:1) at e.project (main.0e8acae237e497f792ab.bundle.js:1) at e._next (vendor.b69a8a4fa217eba4fba0.bundle.js:1) at e.T14+.e.next (vendor.b69a8a4fa217eba4fba0.bundle.js:1) […]

Express Session与特定路线不同

这是我的快递服务器代码: // app.js const express = require('express'); const app = express(); const logger = require('morgan'); const bodyParser = require('body-parser'); const cookieParser = require('cookie-parser'); const session = require('express-session'); app.use(logger('[:date[iso]] :method :url :status :response-time ms – :res[content-length]')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); app.use(session({ secret: '…', resave: false, saveUninitialized: false, maxAge: 1000 * 60 * 60 // […]