Node.js에서 파일을 읽는 것에 상당히 당황합니다.
fs.open('./start.html', 'r', function(err, fileToRead){
if (!err){
fs.readFile(fileToRead, {encoding: 'utf-8'}, function(err,data){
if (!err){
console.log('received data: ' + data);
response.writeHead(200, {'Content-Type': 'text/html'});
response.write(data);
response.end();
}else{
console.log(err);
}
});
}else{
console.log(err);
}
});
파일 start.html
이 열려고하는 파일과 동일한 디렉토리에 있습니다.
그러나 콘솔에서 나는 얻는다 :
{[오류 : ENOENT, ‘./start.html’열기] 오류 : 34, 코드 : ‘ENOENT’, 경로 : ‘./start.html’}
어떤 아이디어?
답변
사용 path.join(__dirname, '/start.html')
;
var fs = require('fs'),
path = require('path'),
filePath = path.join(__dirname, 'start.html');
fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
if (!err) {
console.log('received data: ' + data);
response.writeHead(200, {'Content-Type': 'text/html'});
response.write(data);
response.end();
} else {
console.log(err);
}
});
dc5 덕분입니다.
답변
Node 0.12를 사용하면 이제 동 기적으로이 작업을 수행 할 수 있습니다.
var fs = require('fs');
var path = require('path');
// Buffer mydata
var BUFFER = bufferFile('../public/mydata.png');
function bufferFile(relPath) {
return fs.readFileSync(path.join(__dirname, relPath)); // zzzz....
}
fs
파일 시스템입니다. readFileSync () 는 버퍼 또는 요청하면 문자열을 반환합니다.
fs
상대 경로가 보안 문제라고 올바르게 가정합니다. path
해결 방법입니다.
문자열로로드하려면 인코딩을 지정하십시오.
return fs.readFileSync(path,{ encoding: 'utf8' });
답변
1). ASync의 경우 :
var fs = require('fs');
fs.readFile(process.cwd()+"\\text.txt", function(err,data)
{
if(err)
console.log(err)
else
console.log(data.toString());
});
2). 동기화 :
var fs = require('fs');
var path = process.cwd();
var buffer = fs.readFileSync(path + "\\text.txt");
console.log(buffer.toString());
답변
노드와 간단한 동기 방식 :
let fs = require('fs')
let filename = "your-file.something"
let content = fs.readFileSync(process.cwd() + "/" + filename).toString()
console.log(content)
답변
이 코드를 실행하면 파일에서 데이터를 가져 와서 콘솔에 표시합니다
function fileread(filename)
{
var contents= fs.readFileSync(filename);
return contents;
}
var fs =require("fs"); // file system
var data= fileread("abc.txt");
//module.exports.say =say;
//data.say();
console.log(data.toString());
답변
http
모듈을 사용하여 서버에서 HTML 파일을 읽습니다 . 이것은 서버에서 파일을 읽는 한 가지 방법입니다. 콘솔에서 가져 오려면 http
모듈 선언을 제거하십시오 .
var http = require('http');
var fs = require('fs');
var server = http.createServer(function(req, res) {
fs.readFile('HTMLPage1.html', function(err, data) {
if (!err) {
res.writeHead(200, {
'Content-Type': 'text/html'
});
res.write(data);
res.end();
} else {
console.log('error');
}
});
});
server.listen(8000, function(req, res) {
console.log('server listening to localhost 8000');
});
<html>
<body>
<h1>My Header</h1>
<p>My paragraph.</p>
</body>
</html>
답변
디렉토리 내에서 파일을 읽고 파일로 무언가를 수행하는 방법을 알고 싶다면 여기로 가십시오. 또한를 통해 명령을 실행하는 방법을 보여줍니다 power shell
. 이 안에 있습니다 TypeScript
! 나는 이것에 문제가 있었기 때문에 언젠가 누군가에게 도움이되기를 바랍니다. 도움이되지 않는다고 생각되면 자유롭게 투표하십시오. 이것이 나를 위해 한 것은 배포 준비를 위해 특정 폴더 내의 각 디렉토리에있는 webpack
모든 .ts
파일이었습니다. 당신이 그것을 사용할 수 있기를 바랍니다!
import * as fs from 'fs';
let path = require('path');
let pathDir = '/path/to/myFolder';
const execSync = require('child_process').execSync;
let readInsideSrc = (error: any, files: any, fromPath: any) => {
if (error) {
console.error('Could not list the directory.', error);
process.exit(1);
}
files.forEach((file: any, index: any) => {
if (file.endsWith('.ts')) {
//set the path and read the webpack.config.js file as text, replace path
let config = fs.readFileSync('myFile.js', 'utf8');
let fileName = file.replace('.ts', '');
let replacedConfig = config.replace(/__placeholder/g, fileName);
//write the changes to the file
fs.writeFileSync('myFile.js', replacedConfig);
//run the commands wanted
const output = execSync('npm run scriptName', { encoding: 'utf-8' });
console.log('OUTPUT:\n', output);
//rewrite the original file back
fs.writeFileSync('myFile.js', config);
}
});
};
// loop through all files in 'path'
let passToTest = (error: any, files: any) => {
if (error) {
console.error('Could not list the directory.', error);
process.exit(1);
}
files.forEach(function (file: any, index: any) {
let fromPath = path.join(pathDir, file);
fs.stat(fromPath, function (error2: any, stat: any) {
if (error2) {
console.error('Error stating file.', error2);
return;
}
if (stat.isDirectory()) {
fs.readdir(fromPath, (error3: any, files1: any) => {
readInsideSrc(error3, files1, fromPath);
});
} else if (stat.isFile()) {
//do nothing yet
}
});
});
};
//run the bootstrap
fs.readdir(pathDir, passToTest);