以下代码按预期工作:它读取已使用 multer [https://github.com/expressjs/multer] 上传的文件并将其流式传输到 gridfs。我也能够从 gridfs 中蒸出它。
var target = gfs.createWriteStream({
filename: fileItem.originalname,
mode: 'w',
metadata: metaData
});
fs.createReadStream(tempFile)
.on('end', function () {
console.log('File read and stored');
})
.on('error', function (err) {
console.log('Error handling file ' + err);
})
.pipe(target);
// Attach new file to document list
target.on('close', function (file) {
filesUploadedList.push(file._id);
Run Code Online (Sandbox Code Playgroud)
fileItem是通过迭代req.files.file上传的文件获得的。
但是,我正在尝试找出 multer 的 inMemory 选项。如果我将此设置为 true,fileItem则将填充缓冲区。请注意,如果没有此选项, 的缓冲区/内容fileItem是空的,这就是为什么在上面的代码中从fileItem.location.
用内容填充目标的最佳方法是什么?该fs.createReadStream做的那一刻管道。
谢谢。
J
我正在尝试在package.json中添加一个npm脚本,该脚本NODE_ENV在进行其他操作(如运行webpack)之前进行设置。但是,尽管语法似乎是正确的,NODE_ENV在Windows 10下运行时未设置。
测试脚本
"scripts": {
"test": "SET NODE_ENV=debug && echo %NODE_ENV%" }
Run Code Online (Sandbox Code Playgroud)
结果来自npm run test“生产”(NODE_ENV运行脚本之前已设置为“生产”)。应该是“调试”。
编辑
为了澄清我的问题:我无法在Windows 10下设置任何环境变量。我需要调用SET,因为我正在Windows(10)下运行脚本。似乎是一些权限问题(不允许脚本设置环境变量?)。
另一个(或实际的)问题是:如何创建一个脚本(使用Webpack)以创建JavaScript文件的缩小版本(用于生产),以及如何创建非缩小版本的脚本(用于开发)。到目前为止,我使用以下方法(有关重要部分,请参见注释):
编辑2
我现在并没有意识到这可能会有所作为,但万一确实如此:我使用的是使用create-react-app创建的React应用。我找到了问题的答案,请参见下文。
package.json:
{
"name": "test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
// Scipts for build for development and for production
"build-dev": "SET NODE_ENV=debug webpack",
"build-release": "SET NODE_ENV=production webpack"
},
"author": "",
"license": "ISC",
"dependencies": {
"babel-core": "^6.24.1",
"babel-loader": "^7.0.0",
"babel-preset-env": "^1.4.0",
"babel-preset-react": …Run Code Online (Sandbox Code Playgroud) 我已经看到了这些类型的问题并尝试了解决方案,但没有奏效.
我从UI发送一个数组到控制器,我在Node.js中有faker.js的参考
我在控制器中的代码:
var FirstName = req.body; // req.body has array
console.log(FirstName); // **Prints** { FirstName: 'faker.name.firstName()' }
const User = FirstName; // Didnt work because faker.name.firstName is as string
const Usercheck = JSON.stringify(GettingData[0]);
var response = Usercheck.replace(/['"]+/g,'')
console.log(response); // Here it removed the quotations but took total as string. "{ FirstName: faker.name.firstName()}"
JSON.parse(response); // Tried to parse string as JSON but this shows the error at position 0
Run Code Online (Sandbox Code Playgroud)
在Faker.js工作的预期代码是
const User = { FirstName: faker.name.firstName() } // Hard code …Run Code Online (Sandbox Code Playgroud) 我有这个功能:
const calculateTotal = (items) => {
return items.reduce((totalPrice, basketItem) => {
const price = basketItem.product.price;
const quantity = basketItem.quantity;
const total = price * quantity;
return totalPrice + total;
}, 0);
};
Run Code Online (Sandbox Code Playgroud)
我如何通过ES6 +解构来解决这个问题?
我知道我需要类似的东西(第4行):
const { basketItem: quantity } = quantity;
但我不能让第3行工作
overflow:overlay在chrome和safari中运作良好。此属性在IE和Mozilla浏览器中不可用。我需要滚动条窗格始终可见。
将对象与整数进行比较时,JavaScript的行为是什么?例如:
var result = { test: 'blah' };
if (result < 0) {
// when is this portion processed?
}
Run Code Online (Sandbox Code Playgroud)
我目前正在使用一个result变量,它可以是一个整数(错误代码)或一个包含更多细节的对象.
我想我可以使用parseInt()或者parseFloat()我很想知道处理这些情况的最短路径...
我使用dotnet cli创建了一个项目,一切正常,直到我想为应用程序编写测试.
我创建了一个src目录并将整个Web项目移动到该src文件夹,之后我在一个名为的文件夹中创建了测试项目tests.
我在测试项目中添加了对Web应用程序的引用,测试成功运行但是当我运行我的应用程序时,dotnet run我收到以下错误:
该
Views文件夹位于src目录中,其他所有文件都包含*.csproj.
请在下面找到我的文件夹结构:
任何帮助,将不胜感激.谢谢.