Tag: 文件

EADDRNOTAVAIL当Dockerizing Node.js应用程序

通过以下应用程序,我可以通过npm install / node app.js手动启动它。 问题是尝试通过Docker容器运行应用程序。 除了应用程序的其余部分(这并不重要,因为运行Docker容器甚至没有那么远),Dockerfile从GitHub中抽取代码,切换到该目录,然后运行app.js主机和端口从一个config.json文件)。 尝试使用服务器的IP地址(应该监听的内容)运行容器会导致以下错误: uncaughtException: Error: listen EADDRNOTAVAIL Error: listen EADDRNOTAVAIL at errnoException (net.js:905:11) at Server._listen2 (net.js:1024:19) at listen (net.js:1065:10) at net.js:1147:9 at dns.js:72:18 at process._tickCallback (node.js:442:13) at Function.Module.runMain (module.js:499:11) at startup (node.js:119:16) at node.js:929:3 更改端口并不能解决问题。 我已经包含了下面的相关文件(用{伪代码}replace某些部分)。 任何帮助将非常感激,因为我对Docker绝对没有希望。 Dockerfile: FROM centos:centos6 RUN rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm RUN yum install -y npm git […]

在每个事件之后创build目录

我正在尝试每个button单击事件后创build一个目录。 这只能工作到10个目录 5612cfea107f9e0f356b3dee_1 5612cfea107f9e0f356b3dee_2 5612cfea107f9e0f356b3dee_3 5612cfea107f9e0f356b3dee_n 然后我得到这个错误: Error: EEXIST: file already exists, mkdir 'user/public/uploadGallery/5612cfea107f9e0f356b3dee_10' app.post('/createDirectories', function(req, res) { var id = '5612cfea107f9e0f356b3dee'; var pathDirectory = __dirname + '/public/uploadGallery/' + id; fs.readdir(__dirname + '/public/uploadGallery/', function (err, files) { var countVal = files.filter(junk.not).length; var fileVal = files.filter(junk.not); if(countVal == '0'){ fs.mkdirSync(pathDirectory + '_' + 1); console.log("Directory created: […]

chokidar:文件的onchange事件可能会被触发

我们正在使用Ubuntu服务器上的nodejs使用chokidar监视文件更改。 它工作的很好,但有时我认为我们有一个文件被保存的方式改变时的问题:在chokidar“onchange”事件触发,但是当我们在callback中读取文件,它是空的或(很less)不完全写。 我们不知道这是由文本编辑器写入文件,客户端计算机上的操作系统,操作系统还是服务器上的文件系统(ext4)引起的问题,还是由于chokidar中的某种错误造成的。 这个空文件问题现在几乎每次都是由使用sublime 3的计算机(mac,最新的osx版本)所做的文件更改发生的。 在崇高,我们尝试了设置“atomic_save”(创build一个临时文件,然后覆盖原来的文件),但它没有解决我们的问题: 当atomic_save设置为“false”时,文件在onchange事件中似乎总是空的 有了atomic_save “真”,它有时是空的,有时是部分写的。 我们之前用phpstorm有过这个问题,但是在切换到'use'安全写入之后(先保存一个临时文件的变化)' – 与sub_sim中的atomic_save设置相同,这也是我们为什么尝试atomic_save在sublime中,onchange事件在完成写入后被正确触发。 所以我们的问题是,有什么办法可以在文件完全写入的时候触发“onchange”(在chokidar中,在OS中,在sublime中)? 或者,我们必须检查“onchange”事件的文件大小,直到一段时间没有改变(不太好)? 或者,我们的问题可能是由于其他原因而发生的? 我们将不胜感激任何提示! 提前致谢!

Nodejs从数据读取文件并创build对象

我正在尝试编写一个nodejs程序。 我有一个文件data.json,它包含json对象。 对于每个对象,我必须添加另一个键作为审查,值作为文本文件的数据。 在这里,我写了从json文件中读取数据的代码,在那个文件中,我为每个对象插入了key和value对。 并存储在一个名为“问题”的数组中,在下面的代码中,我使用callback将数据发布到调用函数。 但在Fetchdata函数中的“for循环”之前执行callback。 如何在循环之后调用callback。 var fs = require('fs'); var jf = require('jsonfile') var file = '../data/data.json' function readfile(str,callback) { fs.readFile(str, function (err, data) { callback && callback(data.toString()); }); } function Fetchdata(callback) { var matter = []; jf.readFile(file, function (err, jsonData) { var j=0; for (var i = 0; i < jsonData.length; ++i) […]

gulp dest()dynamic目标文件夹根据文件名

我想遍历所有的src文件,并移动文件名称本身的文件夹中的每个文件,例如。 从: hello.js omg.js 至: hello/ hello.js omg/ omg.js 我有这个任务: gulp.src('/*.js') .pipe(gulp.dest('/' + filename here…….)); 我如何做到这一点?

如何在运行testing之前从摩卡文件读取数据?

我目前正在API上运行testing – 使用Mocha运行时没有问题。 testing数组存储在一个variables – “testing”在文件的顶部。 我想从文本文件中读取testing信息,并在运行testing(一次)之前将信息parsing成variables。 我试图使用before()同步和asynchronous(下面) //Synchronously describe("API Tests", function (done) { before(function(){ tests = fs.readFileSync('./json.txt', 'utf8'); tests = JSON.parse(tests); }); for (var i = 0; i < tests.length; i++) { runTest(tests[i]); } done(); }); //Asynchronously describe("API Tests", function () { var tests = ""; before(function(){ fs.readFile('./json.txt', 'utf8', function(err, fileContents) { if (err) […]

Node.js:fs.readdir不会返回由fs.writeFile写入的文件

我的应用程序 一个简单的Node.js http服务器,它通过调用POST /deploy在给定的目录中创build文件。 在写入文件后,我想使用console.log列出该目录中的所有文件。 为了创build文件( POST /deploy ),我打电话给: fs.writeFile(filename, content, 'utf8', callback(null, {'newFile': filename})); callback函数写入HTTP响应,并使用以下命令列出文件: fs.readdir(some_directory, (err, files) => { files.forEach(file => { console.log(file); // Do something with the file } } 我的问题 新文件没有在callback中列出。 只有在我再次调用部署之后,才会列出上一个文件。 例如,如果我使用/deploy连续创build文件a和b ,则仅在创buildb时列出b ,并且在进行另一次调用之前b不会列出。 我假设在调用callback函数时文件没有closures,只有在稍后调用fs.readdirclosures后fs.readdir看到文件。 我怎样才能调用callback函数只有在文件被正确closures,并可以使用fs.readdir列出? 我试过了什么 阅读fs.close()手册。 它工作,但需要一个fd ,而不是文件名,所以我必须打开文件只是为了closures它,这似乎很麻烦: fs.open(fd,write,buffer){fs.cln(fd,callback(null,{'newFile':filename })); }); }); 在SO中寻找类似的问题

docker简单的node.js工作stream程

我在Windows上使用Docker进行开发,我正在尝试为node.js项目创build一个简单的工作stream程。 我跟着这个教程https://nodejs.org/en/docs/guides/nodejs-docker-webapp/所以我的Dockerfile看起来像这样 FROM node:boron # Create app directory WORKDIR /usr/src/app # Install app dependencies COPY package.json . # For npm@5 or later, copy package-lock.json as well # COPY package.json package-lock.json ./ RUN npm install # Bundle app source COPY . . EXPOSE 8080 CMD [ "npm", "start" ] 我的每个更改的“工作stream程”将如下所示 第一次build造 docker build -t thomas/myApp DockerProjects/myApp […]

具有文件查询function的NodeJS库

我正在寻找一个具有查询function的图书馆。 所以,让我们说我想获得一个项目中的某个目录中的所有JS文件。 我可以做类似的事情 filesystem.query({ paths:[{ path:"c:/path/to/dir", recursive:true }], types:[".js"], excludes:["test.js"] },successFn,failFn); 任何图书馆都有这个function吗?

Node.js:稳定的方式来检查文件的变化?

有一个稳定的方法来检查node.js中的文件更改吗? 我已经尝试了默认的fs.watch ,但是它很漂亮。 fs.watch(__dirname, function(event, filename){ console.log(event + ' file ' + filename); }) 这会logging一次更改3次。 而且每个人都在不同的操作系统下报告了很多bug。 节点v0.8.21,Ubuntu 12.10