nodejs handlebars:'TypeError:this.engine不是一个函数'

我尝试使用Express中的句柄模板。 我得到这个错误消息: TypeError:this.engine不是View.render的函数(/home/ubuntu/workspace/node_modules/express/lib/view.js:128:8)… 与此代码: 'use strict'; var express = require('express'); var expressHandlebars = require('express-handlebars'); var app = express(); app.engine('handlebars', expressHandlebars({defaultLayout: 'layout'})); app.set('view engine', 'html'); app.use(express.static('views')); app.route('/single/:id') .get(function (req, res) { res.render(process.cwd() + `/public/single-poll`, { id: req.params.id }); }); app.listen(process.env.PORT, function () { console.log('Node.js listening on port ' + process.env.PORT + '…'); }); 当我用sendFile()replacerender()函数是正常的。 我知道快速js渲染:TypeError:this.engine不是一个函数和Express js呈现错误this.engine不是一个函数和TypeError:this.engine不是一个函数时,试图在Express […]

运行带有参数的节点js文件多次被允许?

我可以在命令行中传递两个参数运行一个节点js文件。 说这个文件是main.js,我可以在两个单独的行中执行node main.js 1和node main.js 2 ,以在单独的线程中运行两个文件。

由于MissingSchemaError,Mongoose .populate()不能填充

我正在尝试使用Mongoose中的对象ID引用来填充users数组。 这是我的user.js模型: var mongoose = require('mongoose'); var User = mongoose.Schema({ conversations: [ { type: mongoose.Schema.Types.ObjectId, ref: 'Conversations' } ], messages: [ { type: mongoose.Schema.Types.ObjectId, ref: 'Messages' } ] }); var User = module.exports = mongoose.model('Users', User); module.exports.getUserByUsername = function(username, callback) { var query = {username: username}; User.findOne(query, callback); } module.exports.getUserById = function(id, callback) { User.findById(id, […]

查找与顺序无关的嵌套数组的完全匹配

假设这些数据: { "_id" : ObjectId("594d43d1da7887921c701575"), "hashSets" : [ { "data1" : [ "2bf2cededea424f47d64d33c511dd431", "40499da7ee1456a2f79dc39a718aaf9b" ], "data2" : [ "b068931cc450442b63f5b3d276ea4297", "16ebd6af0cadece819da7468a9fd79f4", "8717cfca734e8987971f63b20eeb8024" ] }, { "data1" : [ "098F6BCD4621D373CADE4E832627B4F6", "5A105E8B9D40E1329780D62EA2265D8A", "AD0234829205B9033196BA818F7A872B" ], "data2" : [ "8AD8757BAA8564DC136C1E07507F4A98" ] } ], "__v" : 0 } 我正在尝试查询“hashSets”上的完全匹配,但“hashSets”数组中对象的顺序可能不同,并且数据数组中哈希的顺序可能有所不同。 我发现这个post有点类似: MongoDB查找精确数组匹配,但顺序无关紧要 虽然使用$ size和$ all是有道理的,但我不太清楚如何将它应用于嵌套的数组/对象。 我正在使用这个简单的查询,但似乎命令必须是相同的: db.analysis.find({hashSets:input.hashSets}) 编辑:为了清晰起见: input.hashSets = [ { […]

node.jsparsinghtml文本以获得一个javascriptvariables的值

我成功地做到这一点,以获得我感兴趣的页面的帮助文本。 router.get('/get', function (req, res) { var pg = 'https://j……com/f/resource' console.log('get', pg); requestify.get(pg).then(function (resp) { console.log(resp.body); }); }); 现在,我有页面的文本,我想parsing文本来获取我知道存在于文本中的JavaScriptvariables的值。 <script> var x1 = {"p": {…….bla bla …}};</script> 我知道有时<script>标签将包含type属性; 但并不总是包含type属性。 当我findx1的值时,我在javascript的应用程序中将myVarvariables中的值用于什么目的。 如果你没有答案,那么你对我应该研究什么的评论/提示是值得赞赏的。 我希望我会find一些模块,我可以把整个文本,并有模块以某种方式只是输出所有variables为我的值。

服务器没有返回JSON从Express到React(代理)

我正在尝试制作一个具有React前端(在端口8080上运行)和一个Express-Node.js后端(在端口3000上)的应用程序。 我希望我的客户使用fetch从我的服务器请求数据。 到目前为止,我在线阅读的内容表明,我需要使用http://localhost:3000的值向我的package.json添加一个proxy项。 我这样做了,我的服务器正确接收请求,但它的响应不是我所期望的(一个JSON对象)。 我究竟做错了什么? //Server app.get('/search', function(req, res) { … //console.log(section) <– Is the correct value res.json(section); }) … app.listen(3000) //Client handleTouchTap() { fetch('/search?crn=10001').then(function(response) { //<– Hard-coded for testing return response; //<– Does not contain the value of "section" from server }).then(function(data) { console.log(data); //<– Likewise, does not contain the value }); } //From […]

用Node.jslogging遍历的fspath

我有一个工具,正在通过某些文件的文件系统进行并发search。 当该工具通过fssearch时,可能会发现它需要在原来不包含在search中的目录中进行search。 我应该做的是记住每个已经开始search的目录。 我想不出一个更好的方式来记忆文件path,除非存储在像这样的散列: interface IMemoizationMap { [key: string]: boolean } 所以可能看起来像: const hash = { '/Users/you/projects/x': true, '/Users/you/projects/x/lib': true, '/Users/you/projects/x/lib': true, … … '/Users/you/some-stuff/z': true }; 然后我做一个快速查找,看看我是否需要search某个目录。 这个解决scheme令人感到尴尬的是,哈希中的值几乎可以是任何东西 – 真,假,未定义的。 这是记忆遍历文件path的最好方法吗? 撇开,就是performance key in hash 一样 hash[key] ? 如果是这样的话,那么存储的值就会有一些值: 当一个目录开始被search时,我可以使这个值为false,然后当目录search结束时,我可以将值翻转为true。 那么价值至less意味着什么 。

在git中使用package.json中的分支代码

我们正在研究node.js应用程序,并且使用发布到npm的我的学院包,现在他创build了新的Git分支(我们称之为第二个),有一种方法可以在package.json中使用它,而不需要发布到npm ? (我只是想testing新的分支) 更新我尝试类似的东西 "git://github.mycompany.corp/vv/app.js.git#newbranch" 它不工作任何想法?

Webpack&Babel:服务器端渲染React组件“Unexpected token”<'“

我一直在调查这个问题3天,但不能得到它的工作。 完整的错误是: C:\Users\XXXXXX\WebstormProjects\XXXX\server\routes\auth.jsx:58 return res.send(ReactDOMServer.renderToString(<LoginPage />)); ^ SyntaxError: Unexpected token < at createScript (vm.js:56:10) at Object.runInThisContext (vm.js:97:10) at Module._compile (module.js:542:28) at Object.Module._extensions..js (module.js:579:10) at Module.load (module.js:487:32) at tryModuleLoad (module.js:446:12) at Function.Module._load (module.js:438:3) at Module.require (module.js:497:17) at require (internal/module.js:20:19) at Object.<anonymous> (C:\Users\XXXXXX\WebstormProjects\XXXX\index.js:10:20) 这是我的webpack.config.js: const path = require('path'); module.exports = { entry: path.join(__dirname, '/client/src/app.jsx'), output: { path: […]

Bitjift运算符在NodeJS中的无符号短整型

我正在尝试在nodeJS / javascript中的无符号整数上执行Bitwise NOT操作。 在我的理解中,每个按位运算符都是在一个有符号的32位整数上完成的,当我想在一个无符号的16位整数(简称)上进行操作时,这会使我感到困惑。 这是我想要做的: c# ushort value = 41003; value = (ushort)~value; //Value is now 24532 which is correct nodeJS var value = 41003; value = ~value; //value is now -41004 wich is NOT correct 如何将最后一个值转换为nodeJS / javascript中的无符号16位整数?