Tag: parsing

以编程方式在JS文件中插入一行

我想写一个程序,将在现有的HTML文件中添加一行到JS。 我以为我会使用node.js,因为它是相同的语言。 我看了一些项目, esprima , 橡子 , rocambole , falafel , escodegen等,但我似乎无法find任何文件如何添加到AST的节点,以创build此新行。 我不知道是否一个parsing工具是最好的东西 – 也许我会更好地使用条纹操纵/正则expression式? 我也想修改一些行以及添加新行。 下面的代码是我目前不得不添加一行到JavaScript的非工作代码。 var newNode = JSON.parse(transparent); // get html string here fs.readFile(path.normalize('C:\myDoc'), function (err, html) { if (err) { throw err; } handler = new htmlparser.DomHandler(function (err, dom) { if (err) { sys.debug("Error: " + err); } else { // […]

Node.js node-csv模块 – 使用本地CSV文件

我正在尝试使用新版本的node-csv节点模块来执行一些CSV操作。 节点CSV 我过去使用过perl,但是这次想尝试JavaScript。 我无法弄清楚如何导入本地CSV文件,而不是使用内置的生成器。 node-csv的文档没有显示如何做到这一点,据我所知(尽pipe它提供了一个以前的版本的例子)。 下面是示例代码,它按预期工作。 var csv = require('csv'); var generator = csv.generate({seed: 1, columns: 2, length: 20}); var parser = csv.parse(); var transformer = csv.transform(function(data){ return data.map(function(value){return value.toUpperCase()}); }); var stringifier = csv.stringify(); generator.on('readable', function(){ while(data = generator.read()){ parser.write(data); } }); parser.on('readable', function(){ while(data = parser.read()){ transformer.write(data); } }); transformer.on('readable', function(){ while(data = […]

按照顺序从.xlsx / .xlsm中提取图像

我有xlsx / xlxm文件,并有一些列中的图像。 我可以检索他们,如果我打开它在winrar中,但它不是在我的文件中的顺序(他们被命名为pic1,2 …)。 我不知道为什么,但它确实按照20先令的顺序,然后搞砸了。 我需要的是以正确的顺序获取这些图像,以便我可以稍后使用它们的ID检索它们。 或者,如果我能得到他们,并更换一个blob,这将是很好的实际形象。 但是我试过的xls / xparsing器没有一个可以检索图像。 最后的目标是有一个JSON和内部的图像或一种方式来引用它

如何在nodejs中逐行获取csv文件的数据

我有一个csv文件,看起来像一个xl文件(格式),但扩展名为.csv 我正在写一个代码,将csv文件的每一行转换为json并发送到服务器(或注销)。 但文件频繁更改,所以我使用fs.watch来观看更改,这里的更改意味着添加新的行,所以我想只发送新添加的行到服务器每次事件被fs.watch抛出,我只能发送新的行如果我从行逐行获取数据并将其转换为JSON并发送到服务器,我可以跟踪最后一行发送和事件发生时,我将开始发送从上次保存的行。 我想从csv文件中获取逐行数据的方式,这是我已经尝试了很多,但都没有工作 我不想只解决以下的代码,将接受任何解决scheme,做上面的工作 我也可以使用xl文件解决scheme,因为我可以将扩展名更改为.xlsx Mycode: var Papa = require('babyparse'); var fs = require('fs'); var file = 'test.csv'; var content = fs.readFileSync(file, { encoding: 'binary' }); Papa.parse(content,{ fs.watchFile('test.csv', function (curr, prev) { step: function(row){ console.log("Row: ", row.data); }); }); }); 错误: fs.watchFile('test.csv', function (curr, prev) { ^ SyntaxError:意外的标记。 at Module._compile(module.js:443:25)处的Modules.load(module.js:73:16)处的Modules.load(module.js:478:10)处的Object.Module._extensions..js(module.js:478:10)处的exports.runInThisContext(vm.js: (node.js:129:16)在Function.Module.runMain(module.js:501:10)处的Function.Module._load(module.js:310:12)的.js:814:3

如何在nodejs中有path别名?

假设我有以下代码: var mod1 = require('../../../../ok/mod1'); var mod2 = require('../../../info/mod2'); 这不是像上面那么漂亮的编码,我想知道是否有一种方法来configuration根parsing器就像在nodejs中的webpack-resolve-root ? 据我所知, NODE_PATH可以用来replacenode_modules的根,但这不是我想要的。 我想要parsing器依次parsing多个文件夹。

在大文件加载时将内存不足处理成mongo

我试图保存和parsing大的.csv文件,并保存在MongoDB中的数据,保持结果stringtypes。 所以我试图通过parsing器pipe道.csv文件数据,然后将数据写入MongoDB。 我试着将.csvparsing为一个json文件并使用mongoimport将其上传到MongoDB,但是这些值并没有保存为string,而且在使用mongoimport时不能设置值。 我也不想为节点设置内存,尽量使用尽可能less的内存。 我现在的问题是:程序耗尽内存并抛出: 致命错误:CALL_AND_RETRY_LAST分配失败 – 进程内存不足 var fs = require('fs'); var parse = require('csv-parse'); var async = require('async'); var queue, stream; var headers = fileData.subText.meta.fields; MongoClient.connect(url, function (err, db) { if (err) throw err; var collection = db.collection(fileData.collectionName); var parser = parse({columns: fileData.subText.meta.fields, delimiter: fileData.delimiter}); stream = fs.createReadStream("filepath" + fileData.name).pipe(parser); var data; queue […]

节点js不使用fast-csv库parsingcsv文件

我正在使用fast-csv节点库来parsing名为myFile.csv的csv文件。 代码如下所示: var csv = require("fast-csv"); var fs = require("fs"); var stream = fs.createReadStream('myFile.csv'); csv .fromStream(stream, {headers : true}) .on("data", function(data){ console.log("Start of parsing…"); console.log(data); }) .on("end", function(data){ console.log(data); console.log("End of parsing"); }) 当我运行它时,我在节点控制台中看到以下两行: 1 End of parsing 它不会打印“开始parsing…”或csv文件中的任何数据。 这可能是什么原因? 提前致谢!

错误:options.uri是必需的参数

我正在使用node.js v4.6.0和express,request和body-parser的最新版本,但是我得到了一个我无法修复的错误代码,有什么想法? 这是我的代码: var express = require('express'); var request = require('request'); var bodyparser = require('body-parser'); var app = express(); app.use(bodyparser.urlencoded({extended: true})) var webhook = process.env.DISCORD_WEBHOOK; app.get('/', (req, res) => { res.sendFile(__dirname + '/index.html'); }); app.post('/webhook', (req, res) =>{ request({ method: 'POST', url: webhook, json: { "content": req.body.msg, "username": "Potato" } }); res.redirect("/"); }); app.listen(80, () […]

如何为基于NFA的正则expression式“a * b * a +”工作

我在JS中写了一个简单的正则expression式parsing器,parsing器只支持“*”和“+”,然后我发现一个问题。 “aa”匹配/ a * b * a + /的结果是错误的。 这是我的过程。 首先,我用REstring新build一个NFA图。 如图所示,状态5有一个计数器,如果计数器> = 1,状态5将指向“_end”,graphics将被连接。 从状态0开始,执行DFS,logging每个访问节点。 匹配string,如果两者相等,则下一个状态的计数器+1,然后从下一个状态开始DFS。 当string结束时,检查被访问节点,如果状态为6,则返回true,否则返回false。 这是我的代码。 var Graph = require(__dirname + '/../Graph.js'); var DFS = require(__dirname + '/../DFS.js'); var NFA = module.exports = function(regexp) { var ops = new Array(); // stack this.re = regexp; this.M = this.re.length; this.G = new Graph(this.M + […]

node.js:mailparser无法正常工作

我想分析一个电子邮件,并findmailparser包。 (使用“npm install mailparser”安装它)。 我正在使用Windows 7.我试图运行简单的例子,但“结束”事件不被调用,我没有看到任何日志。 这是我运行的: const MailParser = require("mailparser").MailParser; const mailparser = new MailParser({debug: true}); let email = "From: 'Sender Name' <sender@example.com>\r\n"+ "To: 'Receiver Name' <receiver@example.com>\r\n"+ "Subject: Hello world!\r\n"+ "\r\n"+ "How are you today?"; // setup an event listener when the parsing finishes mailparser.on("end", function(mail_object){ console.log("From:", mail_object.from); //[{address:'sender@example.com',name:'Sender Name'}] console.log("Subject:", mail_object.subject); // Hello […]