首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将csv文件内容从angular js传递到节点js,并在节点js中解析以插入mongo db。

将csv文件内容从AngularJS传递到Node.js,并在Node.js中解析以插入MongoDB的步骤如下:

  1. 在AngularJS中,使用文件上传组件或通过HTTP请求将csv文件发送到Node.js后端。可以使用AngularJS的$http服务来发送POST请求。
  2. 在Node.js中,使用Express框架来处理HTTP请求。在后端路由中,接收到csv文件后,可以使用multer中间件来处理文件上传,并将文件保存到服务器的临时目录中。
  3. 使用csv-parser库来解析csv文件。在Node.js中,可以使用npm包管理器安装csv-parser库。然后,使用fs模块读取临时文件,并使用csv-parser库解析csv文件内容。
  4. 在解析csv文件后,可以将数据插入MongoDB数据库。首先,使用npm包管理器安装mongoose库,然后在Node.js中连接到MongoDB数据库。创建一个模型来定义数据的结构,并使用该模型将解析后的数据保存到MongoDB中。

下面是一个示例代码:

在AngularJS中:

代码语言:javascript
复制
// 通过文件上传组件或HTTP请求发送csv文件到Node.js后端
$scope.uploadFile = function() {
  var file = $scope.myFile;
  var uploadUrl = '/upload'; // 后端路由
  var fd = new FormData();
  fd.append('file', file);

  $http.post(uploadUrl, fd, {
    transformRequest: angular.identity,
    headers: {'Content-Type': undefined}
  }).then(function(response) {
    console.log('文件上传成功');
  }, function(error) {
    console.log('文件上传失败');
  });
};

在Node.js中:

代码语言:javascript
复制
const express = require('express');
const multer = require('multer');
const csv = require('csv-parser');
const fs = require('fs');
const mongoose = require('mongoose');

const app = express();
const upload = multer({ dest: 'tmp/' });

// 连接到MongoDB数据库
mongoose.connect('mongodb://localhost/mydatabase', { useNewUrlParser: true });

// 定义数据模型
const dataSchema = new mongoose.Schema({
  // 定义数据结构
});

const Data = mongoose.model('Data', dataSchema);

// 处理文件上传
app.post('/upload', upload.single('file'), function(req, res) {
  const file = req.file;

  // 读取csv文件并解析
  fs.createReadStream(file.path)
    .pipe(csv())
    .on('data', function(row) {
      // 处理每一行数据
      // 创建数据对象并保存到MongoDB
      const data = new Data(row);
      data.save();
    })
    .on('end', function() {
      // 解析完成后删除临时文件
      fs.unlinkSync(file.path);
      res.send('文件上传成功');
    });
});

app.listen(3000, function() {
  console.log('服务器已启动');
});

请注意,上述代码只是一个示例,需要根据实际情况进行适当修改和完善。另外,为了使代码更加健壮和安全,还应该添加错误处理和数据验证等功能。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用NodeJs(Express)搞定用户注册、登录、授权

首先做一下声明,本篇博客来源于BiliBili上全栈之巅主播Johnny的视频[1小时搞定NodeJs(Express)的用户注册、登录和授权(https://www.bilibili.com/video/av49391383),对其进行了整理。自己跟着视频做,感觉收获不少。 最近在学些NodeJs和Express框架开发后台接口,Express 是一个保持最小规模的灵活的 Node.js Web 应用程序开发框架,为 Web 和移动应用程序提供一组强大的功能。看到B站上全栈之巅-Node.js+Vue.js全栈开发深度爱好者和实践者,感觉Johnny博主的系列视频讲解得不错,其中看到一个视频是1小时搞定NodeJs(Express)的用户注册、登录和授权,介绍了在Express中怎么做用户登录和注册,以及jsonwebtoken的验证,需要在系统中安装MongoDB数据库;于是在自己的Windows10系统下使用VSCode跟着做,前提是要安装好NodeJs和Express开发环境,以及在Windows系统中配置好MongoDB数据库,关于在Windows下安装MongoDB可以参考菜鸟教程中的Windows 平台安装 MongoDB和windows环境下启动mongodb服务。

01

一文了解文件上传全过程(项目中碰到的难点)

平常在写业务的时候常常会用的到的是 GET, POST请求去请求接口,GET 相关的接口会比较容易基本不会出错,而对于 POST中常用的 表单提交,JSON提交也比较容易,但是对于文件上传呢?大家可能对这个步骤会比较害怕,因为可能大家对它并不是怎么熟悉,而浏览器Network对它也没有详细的进行记录,因此它成为了我们心中的一根刺,我们老是无法确定,关于文件上传到底是我写的有问题呢?还是后端有问题,当然,我们一般都比较谦虚, 总是会在自己身上找原因,可是往往实事呢?可能就出在后端身上,可能是他接受写的有问题,导致你换了各种请求库去尝试,axios,request,fetch 等等。那么我们如何避免这种情况呢?我们自身要对这一块够熟悉,才能不以猜的方式去写代码。如果你觉得我以上说的你有同感,那么你阅读完这篇文章你将收获自信,你将不会质疑自己,不会以猜的方式去写代码。

02
领券