假设我有:
var fs = require('fs');
var a= fs.readFile(__dirname + '/someBigFile.txt', function(err, data) {
console.log(data);
});
Run Code Online (Sandbox Code Playgroud)
我注意到,如果最初需要 2 秒来读取someBigFile,现在则需要几毫秒。当您多次读取 Node.js 时,是否会发生一些内部缓存?例如:
for(var i =0; i < 10000; i++)
{
var greet = fs.readFile(__dirname + '/greet.txt', "utf-8", function(err, data) {
});
}
Run Code Online (Sandbox Code Playgroud) 我的脚本需要从JSON文件读取和写入.这没有问题.我在本地复制文件,编辑对象,然后将它们写回文件.但是,当我使用Ctrl + C关闭脚本并检查我的文件时,它[object, object]不是应该存在的实际对象.这不是每次都发生,但是很烦人,因为我的脚本依赖于这个文件.
有关如何防止这种错误关闭读者的任何想法?我在写作之前已经尝试检查类型,但它似乎没有多大帮助.
function writeConfig(obj) {
fs.writeFile('./config.json', obj, function (err) {
if (err) console.log(err);
});
}
Run Code Online (Sandbox Code Playgroud) 当我尝试为节点服务器构建应用程序时,我不断收到描述中的错误。
我最终试图读取 docxtemplater 的 .docx 文件,但如果没有“fs”工作,它看起来就不那么明亮。
我尝试使用在许多解决方案中看到的节点:{fs:“empty”}解决方法,但当我在浏览器上运行它时,它仍然给我相同的错误或传播到控制台。
这是我的 webpack.config.js 中的内容:
var path = require('path');
var webpack = require('webpack');
//var HtmlWebpackPlugin = require('html-webpack-plugin');
var UglifyJsPlugin = require('uglifyjs-webpack-plugin');
var DashboardPlugin = require('webpack-dashboard/plugin');
const sourcePath = path.join(__dirname, './front_end');
const buildPath = path.join(__dirname, './src/bin');
module.exports = {
devtool: 'source-map',
//home directory for webpack must be absolute
//context: sourcePath,
//Application Execution and Webpack Bundling
entry: {
js: path.join(sourcePath, 'index.js')
//html: './index.html',
},
output: {
//Must be absolute path
path: sourcePath,
//publicPath: buildPath,
//publicPath: path.join(__dirname, '/src/bin'), …Run Code Online (Sandbox Code Playgroud) 首先,我是新手es6和jest.
我有一个Logger实例化的类winston,我想测试它.
这是我的代码:
const winston = require('winston');
const fs = require('fs');
const path = require('path');
const config = require('../config.json');
class Logger {
constructor() {
Logger.createLogDir(Logger.logDir);
this.logger = winston.createLogger({
level: 'info',
format: winston.format.json(),
transports: [
new (winston.transports.Console)({
format: winston.format.combine(
winston.format.colorize({ all: true }),
winston.format.simple(),
),
}),
new (winston.transports.File)({
filename: path.join(Logger.logDir, '/error.log'),
level: 'error',
}),
new (winston.transports.File)({
filename: path.join(Logger.logDir, '/info.log'),
level: 'info',
}),
new (winston.transports.File)({
filename: path.join(Logger.logDir, '/combined.log'),
}),
],
});
}
static get …Run Code Online (Sandbox Code Playgroud) 是否可以在 Node.js 中创建虚拟目录?
例如,这些是根目录的内容。
.gitignore
README.md
main.js
node_modules
package.json
Run Code Online (Sandbox Code Playgroud)
当我启动节点应用程序时,它是否有可能xyz在根目录中虚拟创建一个目录?该目录实际上并不存在于计算机的文件系统中。
当节点应用程序运行时,如果任何模块(甚至fs)尝试读取文件系统,它将看到如下内容:
.gitignore
README.md
main.js
node_modules
package.json
xyz
Run Code Online (Sandbox Code Playgroud)
我只想在 Node.js 中实现这一点。并且,虚拟目录xyz中也会有文件。
我在谷歌上进行了全面搜索,但找不到任何东西。请问有人可以帮助我吗?
我看到此错误“找不到模块:错误:无法解析......中的'fs'”,解决方案是
// webpack 4
node: {
fs: "empty"
}
//webpack5
resolve: {
extensions: [".ts", ".tsx", ".js", ".css"],
fallback: {
fs: false,
},
},
Run Code Online (Sandbox Code Playgroud)
但是我不知道“fs:false”或“空”是什么意思?
这是代码:
const dest = fs.createWriteStream('./src/Pages/downloads/' + fileName + '.' + type)
await drive.files.export({
fileId: fileId, mimeType: newType},
{responseType: 'stream'},
function(err, response){
if(err)return console.log(err);
response.data.on('error', err => {
console.log("Found at 911 " + err);
})
.pipe(dest, function(){console.log('file path written.')})
.on('end', ()=>{
console.log("sent file.")
})
});
Run Code Online (Sandbox Code Playgroud)
有几件事需要解释一下。
我正在使用 expo-cli 在 React Native 中工作。
到目前为止我所做的只是
expo init myapp
Run Code Online (Sandbox Code Playgroud)
在将文本添加到我的 app.js 文件后,我尝试这样做
npm start
Run Code Online (Sandbox Code Playgroud)
这给了我这个错误
Error: ENOENT: no such file or directory, open 'fs.js
Run Code Online (Sandbox Code Playgroud)
我没有使用任何与 fs.js 相关的东西,据我从错误页面看到,错误位于
.../node_modules/metro/src/Server.js:99:24)
Run Code Online (Sandbox Code Playgroud)
其他文件堆栈系统将其引用为metro。我使用 VS code 和 Linux Mint 进行开发。我的博览会版本是:4.3.0
世博会诊断结果
Expo CLI 4.3.0 environment info:
System:
OS: Linux 5.4 Linux Mint 20.1 (Ulyssa)
Shell: 5.0.17 - /bin/bash
Binaries:
Node: 10.19.0 - /usr/bin/node
npm: 6.14.4 - /usr/bin/npm
npmPackages:
expo: ~40.0.0 => 40.0.1
react: 16.13.1 => 16.13.1
react-dom: 16.13.1 => 16.13.1
react-native: https://github.com/expo/react-native/archive/sdk-40.0.1.tar.gz => 0.63.2 …Run Code Online (Sandbox Code Playgroud) 我正在尝试提供我的 SvelteKit 应用程序生成的 PDF 文件,并允许用户从端点下载它。
我的项目结构如下所示:
---------------------
/src/routes/downloads
---------------------
[file].ts
ABC.pdf
XYZ.pdf
Run Code Online (Sandbox Code Playgroud)
我的[file].ts端点如下所示:
import fs from 'fs'
// ----- GET -----
export async function get({ params }){
//console.log(params.file) -> ABC
var pdf = fs.readFileSync('./src/routes/downloads/'+params.file+'.pdf')
return{
status:200,
headers: {
"Content-type" : "application/pdf",
"Content-Disposition": "attachment; filename="+params.file+".pdf"
},
body: pdf
}
}
Run Code Online (Sandbox Code Playgroud)
所以当我点击 时http://localhost:3000/downloads/ABC,名为 downloads 的 PDF 文件ABC.pdf。
但我的readFileSync道路不适用于生产。据我所知,没有/src/routes文件夹。
如何通过http://localhost:3000URL 提供我的文件?我尝试过的所有方法都会产生 a404并且找不到该文件。我也愿意采用不同的方式来处理这种情况。这只是我对如何在 SvelteKit 中执行此操作的最佳猜测。
fs ×10
node.js ×7
javascript ×3
expo ×2
react-native ×2
webpack ×2
asynchronous ×1
file ×1
filewriter ×1
jestjs ×1
jpeg ×1
object ×1
readfile ×1
rest ×1
svelte ×1
sveltekit ×1
unit-testing ×1
virtual ×1
winston ×1