好的,我使用FileUploader模块将我的文件从angular上传到我的REST API:

var uploader = $scope.uploader = new FileUploader({
    url: api.getUrl('uploadCompetence',null)
});

这将发送到以下POST功能:

        router.route('/api/uploadCompetence')
        .post(function (req, res) {

        // This is where i want to read the file

            var competence = Competence.build(req.body.location);
            competence.add(function (success) {
                    res.json({message: 'quote created!'});
                },
                function (err) {
                    res.status(err).send(err);
                });
        })

现在我的目标是读取excel文件,然后将每一行添加到我的数据库中.

然而,我不太确定如何从Node.js中读取该文件,我已经调试了服务器,但在任何地方都找不到该文件,但api是从我的Angular应用程序调用的

有人能把我推向正确的方向吗?:)

推荐答案

有几个不同的库在解析Excel文件(.xlsx).我将列出两个我觉得有趣且值得研究的项目.

node xlsx

Excel解析器和生成器.它是一种流行的project 100的包装器,它是Office Open XML规范中的纯javascript实现.

100

解析文件的示例

var xlsx = require('node-xlsx');

var obj = xlsx.parse(__dirname + '/myFile.xlsx'); // parses a file

var obj = xlsx.parse(fs.readFileSync(__dirname + '/myFile.xlsx')); // parses a buffer

ExcelJS

将Electron 表格数据和样式读取、处理和写入XLSX和JSON.这是一个活跃的项目.在 compose 本文时,最近一次提交是在9小时前.我自己还没有测试过这个,但是api看起来很广泛,有很多可能性.

100

代码示例:

// read from a file
var workbook = new Excel.Workbook();
workbook.xlsx.readFile(filename)
    .then(function() {
        // use workbook
    });

// pipe from stream
var workbook = new Excel.Workbook();
stream.pipe(workbook.xlsx.createInputStream());

Node.js相关问答推荐

如何在node.js中以随机顺序调用函数并按顺序操作

如何将我的Redis客户端配置为在禁用群集模式的情况下使用读取副本?

MongoDB-$Lookup未获得适当的结果

Mongoose抱怨说,整数是数字,而不是整数

在编译时强制不缩小类型范围

如何使用NodeJS在mongodb中更新文档

npm错误;无法解析依赖项:npm ERR!对等webpack@;5.x.x;来自@webpack-cli/serve@2.0.5";

安装样式组件时出现react 错误

Axios GET 返回不可读的响应

使用 node/express/Multer,您如何首先判断参数?

Node.js |如何在微服务之间转发标头?

类型中缺少属性,该类型是由类实现的接口

等到文件上传完成的有效方法(mongoose )

当我们有esnext时,为什么我们需要nodenext typescript 编译器选项?

在 ExpressJS 中将变量传递给 JavaScript

Mongodb v4.0 Transaction, MongoError: Transaction numbers are allowed on a replica set member or mongos

Node.JS 中的基本 HTTP 身份验证?

Fluxible 中的脱水和再水合代表什么?

Express.js中的bodyParser.urlencoded({extended: true }))和bodyParser.json()是什么意思?

nodemon + express,监听端口=?