- 保存和 - 储备-DEV之间有什么区别?

有什么区别: npm install [package_name] 和: npm install [package_name] --save 和: npm install [package_name] --save-dev 这是什么意思?以及真正的影响--save和-dev关键字? 答案 和…之间的不同--save和--save-dev如果您在自己的项目中尝试了这两者,可能不会立即引起注意。所以这里有一些例子… 假设您正在构建一个使用**moment** 包装以解析和显示日期。您的应用程序是调度程序,因此它确实需要此软件包运行,如:cannot run without it。在这种情况下,您将使用 npm install moment --save 这将在您的软件包中创建一个新值。 "dependencies": { ... "moment": "^2.17.1" } 当您开发时,它确实有助于使用诸如测试套件之类的工具,并且可能需要茉莉核和业力。在这种情况下,您将使用 npm install jasmine-core --save-dev npm install karma --save-dev 这也会在您的软件包中创建一个新值。 "devDependencies": { ... "jasmine-core": "^2.5.2", "karma": "^1.4.1", } 你做not need 测试套件以正常状态运行该应用程序,因此--save-dev类型依赖性,仅此而已。您可以看到,如果您不了解真正发生的事情,那很难想象。 直接从NPM文档取文档#依赖项 Dependencies 依赖项是在简单的对象中指定的,该对象将软件包名称映射到版本范围。版本范围是一个具有一个或多个空间分隔描述符的字符串。依赖项也可以用TARBALL或GIT URL识别。 Please do not put test harnesses or transpilers in your dependencies object. See devDependencies, 以下。...

__dirname和./在node.js中有什么区别?

在node.js和引用与当前目录有关的文件中进行编程时,是否有任何理由使用该文件__dirname可变,而不仅仅是常规./?到目前为止,我一直在使用。__dirname并且从本质上讲,要知道将我的././‘转换为那是明智的,如果是这样,为什么这将是一个明智的主意。 答案 要旨 在node.js中__dirname始终是当前执行脚本所在的目录(看到这个)。因此,如果您输入__dirname进入/d1/d2/myscript.js,其值为/d1/d2。 相比之下,.给您运行的目录node使用库时的终端窗口(即工作目录)中的命令path和fs。从技术上讲,它是从您的工作目录开始的,但可以使用process.chdir()。 例外是您使用的时候.和require()。里面的路径require始终相对于包含调用的文件require。 例如… 假设您的目录结构是 /dir1 /dir2 pathtest.js 和pathtest.js包含 var path = require("path"); console.log(". = %s", path.resolve(".")); console.log("__dirname = %s", path.resolve(__dirname)); 你也是 cd /dir1/dir2 node pathtest.js 你得到 . = /dir1/dir2 __dirname = /dir1/dir2 您的工作目录是/dir1/dir2那就是什么.决心。自从pathtest.js位于/dir1/dir2就是这样__dirname也决心。 但是,如果您从/dir1 cd /dir1 node dir2/pathtest.js 你得到 . = /dir1 __dirname = /dir1/dir2 在这种情况下,您的工作目录是/dir1那就是什么.决心,但是__dirname仍然可以解决/dir1/dir2。 使用.里面require… 如果里面dir2/pathtest.js你有一个require致电包含一个文件dir1你会always做 require('../thefile') 因为里面的路require始终与您调用的文件有关。它与您的工作目录无关。 来自: stackoverflow.com

./node_modules/css-loader中的错误?

我试图在Windows 10中运行Angular项目。这是我在Ubuntu中进行的同一项目。当我克隆存储库并安装所有遇到此错误的所有节点软件包时。 错误in ./node_modules/css-loader?{“sourcemap”:false,“importloaders”:1}!lib/loader.js?{" sourcemap":false," precision":8," includepaths":[]}!./ src/scss/style.scss/style.scss模块构建失败:错误:enoent:enoent:enoent:no suke file或目录,scandir’C:\ User \ Jaaayz \ documents \ ad fingerprinting \ web \ node_modules \ node-sass \ node-sass \ vendor’在object.fs.fs.fs.readdirsync(fs.js:911:911:18)at okect.getInstallEdBINARIES(c:c:c:\ user \ userjaaayz \ documents \ ad fingerprinting \ web \ node_modules \ node-sass \ lib \ lib \ extensions.js:124:13)lib \ errors.js:20:15)在fistbinies(c:\ users \ jaaayz \ documents \ ad fingerprinting \ ad fingerprinting \ web \ node_modules \ node-sass \ node-sass \ lib \ lib \ lib \ lib \ errors....

.js和.mjs文件有什么区别?

我已经开始基于Node.js的现有项目工作。我只是想了解执行的流动,我遇到了一些*.mjs文件。我搜索了网络,发现这些是基于模块的JS文件。 我想知道它与*.js文件(它如何受益)? 答案 它指示一个ES6模块文件。 Node.js的原始模块系统是commonjs(使用require和module.exports)。 由于创建了node.js,ECMAScript模块系统(使用import和export)已成为标准,node.js为其增加了支持。 node.js会治疗.cjs文件作为commonjs模块和.mjs文件作为eCmascript模块。它将对待.js文件作为项目的默认模块系统是什么(除非包.json 说"type": "module",)。 也可以看看:ES6模块系统和CommonJs的区别 来自: stackoverflow.com

.save()和使用Update()之间的杂种差异()

要修改Mongoose现有条目中的字段,使用之间有什么区别 model = new Model([...]) model.field = 'new value'; model.save(); 和这个 Model.update({[...]}, {$set: {field: 'new value'}); 我问这个问题的原因是由于某人对我昨天发布的问题的建议:nodejs和mongo-同时多个用户同时发送请求时的意外行为。建议使用更新而不是保存的人,我还不完全确定为什么会有所作为。 谢谢! 答案 首先是两个概念。您的申请是Client ,mongodb是Server。 主要区别是.save()您的客户端代码中已经有一个对象,或者必须在写回到服务器之前从服务器中检索数据,并且您正在写回整个内容。 另一方面.update()做not 要求将数据从服务器加载到客户端。所有的交互发生在服务器端而无需检索到客户端。.update()当您将内容添加到现有文档中时,可以以这种方式非常有效。 另外,还有multi参数为.update()这允许在与查询条件匹配的多个文档上执行操作。 在使用时,您会失去一些方便方法.update()作为一个电话,但是某些操作的好处是您必须承担的"权衡"。有关此的更多信息以及可用的选项,请参阅文档。 简而言之.save()是客户端接口,.update()是服务器端。 来自: stackoverflow.com

我有以下代码: connection((db) => { db.collection('orders') .updateOne( { "_id": req.body._id}, // Filter {"name": req.body.name} // Update ) .then((obj) => { console.log('Updated - ' + obj); res.redirect('orders') }) .catch((err) => { console.log('Error: ' + err); }) }) 我想按顺序更改名称,但不会更新它。控制台的结果是 Updated - {"n":0,"nModified":0,"ok":1} 我试图阅读文档,但这太可怕了 编辑:{$set: {"name": req.body.name}},也没有工作 编辑2:传递的ID与数据库中的_id匹配。当我在数据库中查询纯文本ID时,它被称为" ObjectID(‘5A42JA …’)",这可能是一个问题。 答案 也许您应该在更新查询中使用" $ set": {$set: {"name": req.body.name}}, // Update 更多信息文档 EDIT 如果它不起作用,这可能是因为与您的过滤器没有匹配。 也许您应该尝试与这样的objectid匹配: var ObjectID = require('mongodb').ObjectID; // In your request { "_id": ObjectID(req.body._id)}, // Filter 希望能帮助到你。...

“ Gulp”不被认为是内部或外部命令

我正在尝试使用g和node.js流式传输我的过程,以缩小和串联CSS/JS文件进行生产。 这是我所做的。 我安装了node.js在我的Windows 7机器上。 使用此命令在全球安装Gulpnpm install -g gulp 然后我添加了一个新的用户变量称为NODE_PATH将其设置为%AppData%\npm\node_modules 关闭并重新打开了我的命令行后,我试图从命令行中运行一项GULP任务(即gulp css)。但这给我以下错误 'gulp' is not recognized as an internal or external command 我该如何工作? 当我使用 Windows 中的搜索栏打开以下路径时,%AppData%\npm\node_modules我看到以下两个文件夹 gulp gulp-cli 我试图添加%AppData%\npm\node_modules到Path我的系统变量上的变量,但没有采用它,因为该变量达到的最大字符限制。 我从我的路上删除了几条路Path变量并添加;C:\Users\[MyWindowsUserName]\AppData\Roaming\npm\node_modules 但仍然不起作用。 我什至尝试使用此命令在运行时设置路径 PATH=%PATH%;C:\Users\[MyWindowsUserName]\AppData\Roaming\npm\node_modules然后运行gulp仍然有同样的问题。 我在这里想念什么?为了使它起作用,我还需要什么? 答案 我通过卸载nodejs和Gulp解决了问题,然后再次重新安装两个。 要在全球安装Gulp,我执行了以下命令 npm install -g gulp 来自: stackoverflow.com

“ NPM配置集注册表https://registry.npmjs.org/”在Windows BAT文件中不起作用

我在Windows 7上创建A.Bat,A.bat的内容为: @echo off npm config set registry https://registry.npmjs.org/ 然后运行A.Bat,但不起作用,我发现" Set"一词是NPM和BAT的特殊关键字,是否有任何方法可以解决此问题? 答案 您不应该使用NPM注册表来使用.bat文件。.npmrc文件是npm。更改注册表的正确命令是 npm config set registry <registry url> 您可以找到更多信息npm help config命令,还要在运行时检查特权.bat这样的文件。 来自: stackoverflow.com

“ react.Children.ly期望接收单个React Element子女”错误时,将<image>和<touchableHighlight>放在<view>中

我在本机代码中具有以下渲染方法: render() { const {height, width} = Dimensions.get('window'); return ( <View style={styles.container}> <Image style={{ height:height, width:width, }} source={require('image!foo')} resizeMode='cover' /> <TouchableHighlight style={styles.button}/> </View> ); } 它给了我这个错误: React.Children.only预计会收到一个react元素的孩子 如果我删除TouchableHighlight组件,它可以正常工作。如果我删除图像组件,它仍然会出现该错误。 我看不出为什么会给我这个错误。<View>应该能够内部有多个组件进行渲染。 答案 看起来<TouchableHighlight>必须有一个孩子。文档说,它仅支持一个孩子,一个以上的孩子必须包裹在一个<View>,但并不是说它至少必须有一个孩子(大多数)一个孩子。我只是想拥有一个没有文本/图像的纯色按钮,所以我认为有必要添加一个孩子。 我将尝试更新文档以表明这一点。 来自: stackoverflow.com

“ res.render”做什么,HTML文件是什么样的?

有什么res.render做,HTML文件是什么样的? 我的最终目标是将任意逗号分隔数从文本文件加载到HTML文件中(例如)。我只能推断出一个视图是HTML文件,而回调给了该HTML文件。 这是文档:http://expressjs.com/api.html。 现在,从我发现的某些示例代码中给定上下文,使用ejs(嵌入JavaScript)<%和%>。 但是,如果我可以添加,我只是不称职还是真的很模糊,并假设读者知道一切?我怎么能自己弄清楚这一点?是否有任何官方文件,因此我可以完全了解使用,优势和陷阱? Edit 1 我只想补充说我有很多时间学习node.js。是我还是一般文档真的模糊?除了上面的糟糕解释外,参数或返回值没有类型规格。 Edit 2 让我问您在代码上方的一些更具体的问题。 实际上orders.ejs文件在views/orders.ejs。该代码如何指它? HTML摘录: <tbody> <% for(var i=0; i<orders.length; i++) {%> <tr> <td><%= orders[i].id %></td> <td><%= orders[i].amount %></td> <td><%= orders[i].time %></td> </tr> <% } %> 和JS。请参阅 /订单: // Define routes for simple SSJS web app. // Writes Coinbase orders to database. var async = require('async') , express = require('express') , fs = require('fs') , http = require('http') , https = require('https') , db = require('....

“ syntaxerror:意外令牌<in JSON在位置0”

在处理类似Facebook的内容提要的React应用程序组件中,我遇到了一个错误: feed.js:94未定义的" parserError"" syntaxerror:意外的令牌<in Json在位置0 我遇到了类似的错误,事实证明这是渲染函数中HTML中的错别字,但这似乎并非如此。 更令人困惑的是,我将代码滚回到了较早的已知工作版本,但我仍会遇到错误。 feed.js: import React from 'react'; var ThreadForm = React.createClass({ getInitialState: function () { return {author: '', text: '', included: '', victim: '' } }, handleAuthorChange: function (e) { this.setState({author: e.target.value}) }, handleTextChange: function (e) { this.setState({text: e.target.value}) }, handleIncludedChange: function (e) { this.setState({included: e.target.value}) }, handleVictimChange: function (e) { this.setState({victim: e.target.value}) }, handleSubmit: function (e) { e.preventDefault() var author = this.state.author.trim() var text = this....

“./bin/www”在 Express 4.x 中起什么作用?

我刚刚开始在我的 Node.js 应用程序中学习 Express 4.0,我发现它生成了./bin/www文件,其中仅写入应用程序服务器和端口设置,而其他所有内容(例如中间件和路由)都在中定义./app.js文件。 但是,我不确定这是什么./bin/www做。./app.js文件,并启动了我的节点应用node app.js。那么使用./bin/www?它仅将服务器和端口定义与其他服务器分开吗? 现在,当我使用Express-Generator创建软件包时package.json包括以下定义: "scripts": { "start": "node ./bin/www" } 但是,我想知道我是否应该使用node ./bin/www, 或者npm start。我应该运行哪个命令来启动我的应用? 另外,当我将应用程序部署到heroku时,我应该在Procfile文件?web: node app.js足够的? 答案 在Express 3.0 ,通常会使用app.configure()(或者app.use())设置所需的中间件。您指定的那些中间件与Express 3.0捆绑在一起。 例子: var express = require('express'); var routes = require('./routes'); var user = require('./routes/user'); var http = require('http'); var path = require('path'); var app = express(); // all environments app.set('port', process.env.PORT || 3000); app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.compress()); app.use(express.json()); app.use(express.urlencoded()); app.use(express.methodOverride()); 在Express 4....

“bash”不被识别为内部或外部命令

我在安装react-flux-starter-kit-windows时出错。 [email protected] postinstall C:\Users\Hardik\AppData\Roaming\npm\node_modules\react-flux-starter-kit bash setup.sh 'bash' is not recognized as an internal or external command, operable program or batch file. npm ERR! Windows_NT 10.0.14393 npm ERR! argv "C:\Program Files\nodejs\node.exe" "C:\Users\Hardik\AppData\Roaming\npm\node_modules\npm\bin\npm-cli.js" "install" "-g" "react-flux-starter-kit" npm ERR! node v6.9.5 npm ERR! npm v4.2.0 npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! [email protected] postinstall: bash setup.sh npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the [email protected] postinstall script 'bash setup....

“create-react-app”未被识别为内部或外部命令

我正在尝试在 Windows 电脑上使用 create-react-app 命令设置 React 应用程序。 C:\Windows\system32>cd C:\Users\ugur\Desktop\deneme C:\Users\ugur\Desktop\deneme>npm init This utility will walk you through creating a package.json file. It only covers the most common items, and tries to guess sensible defaults. See 'npm help json' for definitive documentation on these fields and exactly what they do. Use 'npm install <pkg> --save' afterwards to install a package and save it as a dependency in the package.json file. Press ^C at any time to quit....

“Express”无法识别命令(Windows)

好的,我正在 Windows (7) 上运行节点。 D:\ -myproject -node_modules -.bin -express 但是,当我位于"myproject"目录中时,我似乎无法运行"express",例如: D:\myproject\express site 'express' is not recognized as an internal or external command, operable program or batch file. 我做错了什么吗? 答案 我的猜测是您没有全局安装 Express。http://expressjs.com/guide.html): npm install -g express 您安装它的方式仅在您安装它的文件夹中可用,并且这种方法没有任何问题。 如果 express 不在您的 PATH 中,您可以通过输入完整路径来运行它: \myproject\node_modules\.bin\express.cmd 来自: stackoverflow.com