国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
> flag
>函數(shù)。不必將這些函數(shù)放在單獨(dú)的文件中;但是,最好為這些路由創(chuàng)建單獨(dú)的文件,因?yàn)樗兄诒3执a良好和有條理。前三行包括解析并保存CSV數(shù)據(jù)所需的必要軟件包。
首頁 web前端 js教程 批量使用Node.js將CSV文件導(dǎo)入MongoDB

批量使用Node.js將CSV文件導(dǎo)入MongoDB

Mar 10, 2025 am 12:09 AM

這個(gè)話題對(duì)我來說是一個(gè)非常有趣的話題。在許多Web應(yīng)用程序中,接受用戶輸入并將單個(gè)記錄保存到數(shù)據(jù)庫(kù)非常普遍。但是,當(dāng)您的用戶(或您)想在單個(gè)命令中執(zhí)行多個(gè)插入片段時(shí),在本文中,我們將演示如何創(chuàng)建CSV模板和表格來上傳CSV文件,以及如何將CSV解析到一個(gè)or Save Mongodb Database。與mongodb。如果您不這樣做,我建議閱讀我的

首先要撰寫Mongodb和Node.js

文章的文章。本文介紹了Mongoose如何通過創(chuàng)建強(qiáng)大的模型來創(chuàng)建強(qiáng)大的模式來與MongoDB互動(dòng)。如果您已經(jīng)對(duì)Mongoose有很好的了解,那么讓我們繼續(xù)進(jìn)行。

入門開始,您將實(shí)例化一個(gè)新的node.js應(yīng)用程序。在命令提示符中,導(dǎo)航到要托管node.js應(yīng)用程序的位置并執(zhí)行以下命令:使用

> flag

> flag意味著該項(xiàng)目在適當(dāng)?shù)奈恢贸跏蓟虼嗽搼?yīng)用程序?qū)⒁?cly> index.js.js
mkdir csvimport<br>cd csvimport<br>npm init -y<br>
開始。在創(chuàng)建和解析CSV文件之前,我們需要先進(jìn)行一些初始設(shè)置。我們希望將其作為Web應(yīng)用程序;為此,您將使用Express軟件包處理所有Nitty-Gritty服務(wù)器設(shè)置。在您的命令提示符中,通過運(yùn)行以下命令來安裝Express:

-y>由于此Web應(yīng)用程序?qū)⑼ㄟ^Web表單接受文件,因此我們還將使用Express Sub-Package Express文件上傳。讓我們現(xiàn)在也安裝它:

npm install express --save<br>
>我們已經(jīng)完成了足夠的初始配置來設(shè)置Web應(yīng)用程序并創(chuàng)建一個(gè)基本的網(wǎng)頁,該網(wǎng)頁將在root Directory中創(chuàng)建一個(gè)文件上傳表單。

,創(chuàng)建一個(gè)

index.js.js.js
npm install express-fileupload --save<br>
文件,并添加以下代碼smippets。此文件設(shè)置了Web服務(wù)器。?

>

這個(gè)文件導(dǎo)入Exprests Express和Express文件上傳庫(kù),配置Web應(yīng)用程序以使用文件上傳,并在端口8080上聽。它還使用Express使用Express創(chuàng)建了一個(gè)路由,該路由將是Web應(yīng)用程序的默認(rèn)著陸頁。此路由返回一個(gè)包含Web表單的文件,該文件將允許用戶上傳CSV文件。>您可以通過在終端中運(yùn)行命令來啟動(dòng)Web服務(wù)器:

var app = require('express')();<br>var fileUpload = require('express-fileupload');<br>var server = require('http').Server(app);<br> <br>app.use(fileUpload());<br><br>app.get('/', function (req, res) {<br>  res.sendFile(__dirname + '/index.html');<br>});<br>server.listen(8080, () => {<br>  console.log('Server started on port 8080')<br>})<br>

您應(yīng)該在端口
node index.js<br>
服務(wù)器上啟動(dòng)端口

808080 >>>。這意味著您已經(jīng)成功地連接到Web服務(wù)器。在根目錄中,創(chuàng)建

index.html

文件。該文件創(chuàng)建了用于上傳CSV文件的表單。

>此html文件包含兩個(gè)重要的東西:>
    >
  1. >/模板>單擊時(shí),將下載一個(gè)可以用要導(dǎo)入的信息填充的CSV模板。
  2. >
  3. encTypemultipart/form-datafile> 設(shè)置為multipart/form-data>的表單和帶有類型的輸入字段的
  4. ext> ext ext ext ext> ext>的csv模板。當(dāng)表單包含文件上傳時(shí),是一種在HTML中使用的編碼方法。?當(dāng)您訪問

批量使用Node.js將CSV文件導(dǎo)入MongoDB http:// localhost:8080/

>您會(huì)看到較早創(chuàng)建的表單。如果您閱讀了文章文章,則創(chuàng)建了作者模式。在本文中,您將重新創(chuàng)建此模式,并允許用戶大量將作者集合導(dǎo)入MongoDB數(shù)據(jù)庫(kù)。讓我們看一下作者模式。不過,在我們這樣做之前,您可能需要猜到了 - 我們需要安裝Mongoose軟件包:

mkdir csvimport<br>cd csvimport<br>npm init -y<br>

>創(chuàng)建模型和模型

>>

>>>>>>>>>>>>>>>
npm install express --save<br>

> >>>>>>>>>>>>>

>
npm install express-fileupload --save<br>
可以通過單擊模板鏈接下載的CSV模板。為了輔助CSV模板生成,我們將使用

JSON2CSV軟件包。此NPM軟件包將JSON帶有列標(biāo)題和正確的行末端轉(zhuǎn)換為CSV。您將為模板路由的此新代碼附加到先前創(chuàng)建的index.js 文件:

>該代碼所做的第一件事是包含一個(gè)新的
var app = require('express')();<br>var fileUpload = require('express-fileupload');<br>var server = require('http').Server(app);<br> <br>app.use(fileUpload());<br><br>app.get('/', function (req, res) {<br>  res.sendFile(__dirname + '/index.html');<br>});<br>server.listen(8080, () => {<br>  console.log('Server started on port 8080')<br>})<br>
template.js

file(下一個(gè)下一步創(chuàng)建),并為/template 創(chuàng)建路由。此路由將在 template.js文件中調(diào)用A>函數(shù)。然后,它創(chuàng)建并導(dǎo)出一個(gè)函數(shù)。此函數(shù)接受來自Express Server的請(qǐng)求和響應(yīng)對(duì)象。函數(shù)內(nèi)部的get,您創(chuàng)建了要在CSV模板中包含的字段數(shù)組。這可以通過兩種方式之一來完成。第一種方法(在本教程中完成)是創(chuàng)建要包含在模板中的字段的靜態(tài)列表。第二種方法是通過從作者架構(gòu)中提取屬性來動(dòng)態(tài)創(chuàng)建字段列表。

第二種方法是使用以下代碼:>
mkdir csvimport<br>cd csvimport<br>npm init -y<br>
>

>使用動(dòng)態(tài)方法是一個(gè)好主意,但是當(dāng)您不想在CSV模板上包含多個(gè)屬性時(shí),它會(huì)變得有些復(fù)雜。在這種情況下,我們的CSV模板不包括_idcreated>屬性,因?yàn)檫@些屬性將通過代碼填充。但是,如果您沒有要排除的字段,那么動(dòng)態(tài)方法也將起作用。

>

>使用定義的字段數(shù)組創(chuàng)建CSV Template

,您將使用

>軟件包從JavaScript對(duì)象創(chuàng)建CSV模板。此json2csv對(duì)象將是此路線的結(jié)果。csv

>,最后,將使用來自Express服務(wù)器的>屬性,將設(shè)置兩個(gè)標(biāo)頭屬性,該屬性將迫使下載

authors.csvresfile。您的Web瀏覽器,Web表單將顯示使用鏈接以下載模板。單擊鏈接以下載模板將允許您下載authors.csv 文件。該文件將在上傳之前填充。

>

在Microsoft Excel中打開模板文件,CSV文件應(yīng)以此為基礎(chǔ):

>這是填充的CSV文件的一個(gè)示例:

批量使用Node.js將CSV文件導(dǎo)入MongoDB

npm install express --save<br>

index.js

文件需要一些更新才能連接到mongoDB并創(chuàng)建一個(gè)新的帖子路由,該路由將使用數(shù)據(jù)庫(kù)連接和配置的新的帖子路由接受文件上傳:
npm install express-fileupload --save<br>

fast-csv,是時(shí)候分析CSV文件了。幸運(yùn)的是,有幾個(gè)很棒的圖書館可以幫助完成這項(xiàng)工作。對(duì)于本教程,我們將使用可以使用以下命令安裝的

軟件包:
var app = require('express')();<br>var fileUpload = require('express-fileupload');<br>var server = require('http').Server(app);<br> <br>app.use(fileUpload());<br><br>app.get('/', function (req, res) {<br>  res.sendFile(__dirname + '/index.html');<br>});<br>server.listen(8080, () => {<br>  console.log('Server started on port 8080')<br>})<br>

post>創(chuàng)建了與模板路由相似的郵路路由,該模板路由從upload.js

文件中調(diào)用a

>函數(shù)。不必將這些函數(shù)放在單獨(dú)的文件中;但是,最好為這些路由創(chuàng)建單獨(dú)的文件,因?yàn)樗兄诒3执a良好和有條理。前三行包括解析并保存CSV數(shù)據(jù)所需的必要軟件包。

接下來,定義和導(dǎo)出了postindex.jsfile的函數(shù)。在此功能內(nèi)部是魔術(shù)發(fā)生的地方。

該功能首先檢查請(qǐng)求主體中包含一個(gè)文件。如果沒有,則返回錯(cuò)誤,指示必須上傳文件。

>

上傳文件后,對(duì)文件的引用保存到稱為authorFile>的變量。這是通過訪問數(shù)組中的files陣列和屬性來完成的。 file屬性匹配我的文件輸入名稱的名稱,該名稱在fileindex.html> example中首先定義。該數(shù)組將用于將數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中。此功能將CSV文件作為字符串接受。該字符串是從屬性中提取的。

屬性包含上傳的CSV文件的內(nèi)容。

authors>下一行包含兩個(gè)

函數(shù)的選項(xiàng):

>> andfast-csv>。這些都設(shè)置為fromString。這告訴庫(kù),CSV文件的第一行將包含標(biāo)題,并且應(yīng)忽略空行。authorFile.data>data>使用配置的選項(xiàng),我們?cè)O(shè)置了兩個(gè)偵聽器函數(shù),這些函數(shù)在

>>事件和事件時(shí)被觸發(fā)。 CSV文件的每一行都調(diào)用一次

事件。此事件包含解析數(shù)據(jù)的JavaScript對(duì)象。fast-csvheaders>該對(duì)象已更新以包含作者架構(gòu)的ignoreEmpty屬性,并具有新的true>。然后將此對(duì)象添加到

陣列中。在事件回調(diào)函數(shù)內(nèi)部,我們將在作者模型上調(diào)用

>函數(shù),將data>的數(shù)組傳遞給它。end>data如果發(fā)生錯(cuò)誤試圖保存數(shù)組,則會(huì)拋出異常。否則,向用戶顯示了一條成功消息,指示已上傳并保存到數(shù)據(jù)庫(kù)中。

>

>數(shù)據(jù)庫(kù)架構(gòu)應(yīng)與此相似:_idObjectIdauthors>

如果您想查看完整的源代碼,則只能查看Github repository github Repository of github repository ofere oferation。上傳了幾個(gè)記錄。如果您的用例需要能夠上傳數(shù)千個(gè)記錄,那么將記錄保存在較小的塊中可能是一個(gè)好主意。

這可以通過多種方式完成。如果要實(shí)現(xiàn)它,我建議更新data回調(diào)功能以檢查作者數(shù)組的長(zhǎng)度。當(dāng)數(shù)組超過您定義的長(zhǎng)度時(shí),例如100,在數(shù)組上調(diào)用Author.create>函數(shù),然后將數(shù)組重置為空。然后將記錄保存在100的塊中。請(qǐng)務(wù)必將最終的create呼叫留在end回調(diào)功能中,以保存最終記錄。

享受!

>

已通過Mary Okosun的貢獻(xiàn)進(jìn)行了更新。 Mary是位于尼日利亞拉各斯的軟件開發(fā)人員,在Node.js,JavaScript,MySQL和NoSQL Technologies中具有專業(yè)知識(shí)。 thumbnail用Openai dall-e。

以上是批量使用Node.js將CSV文件導(dǎo)入MongoDB的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

Java vs. JavaScript:清除混亂 Java vs. JavaScript:清除混亂 Jun 20, 2025 am 12:27 AM

Java和JavaScript是不同的編程語言,各自適用于不同的應(yīng)用場(chǎng)景。Java用于大型企業(yè)和移動(dòng)應(yīng)用開發(fā),而JavaScript主要用于網(wǎng)頁開發(fā)。

如何在JS中與日期和時(shí)間合作? 如何在JS中與日期和時(shí)間合作? Jul 01, 2025 am 01:27 AM

JavaScript中的日期和時(shí)間處理需注意以下幾點(diǎn):1.創(chuàng)建Date對(duì)象有多種方式,推薦使用ISO格式字符串以保證兼容性;2.獲取和設(shè)置時(shí)間信息可用get和set方法,注意月份從0開始;3.手動(dòng)格式化日期需拼接字符串,也可使用第三方庫(kù);4.處理時(shí)區(qū)問題建議使用支持時(shí)區(qū)的庫(kù),如Luxon。掌握這些要點(diǎn)能有效避免常見錯(cuò)誤。

為什么要將標(biāo)簽放在的底部? 為什么要將標(biāo)簽放在的底部? Jul 02, 2025 am 01:22 AM

PlacingtagsatthebottomofablogpostorwebpageservespracticalpurposesforSEO,userexperience,anddesign.1.IthelpswithSEObyallowingsearchenginestoaccesskeyword-relevanttagswithoutclutteringthemaincontent.2.Itimprovesuserexperiencebykeepingthefocusonthearticl

JavaScript與Java:開發(fā)人員的全面比較 JavaScript與Java:開發(fā)人員的全面比較 Jun 20, 2025 am 12:21 AM

JavaScriptIspreferredforredforwebdevelverment,而Javaisbetterforlarge-ScalebackendsystystemsandSandAndRoidApps.1)JavascriptexcelcelsincreatingInteractiveWebexperienceswebexperienceswithitswithitsdynamicnnamicnnamicnnamicnnamicnemicnemicnemicnemicnemicnemicnemicnemicnddommanipulation.2)

什么是在DOM中冒泡和捕獲的事件? 什么是在DOM中冒泡和捕獲的事件? Jul 02, 2025 am 01:19 AM

事件捕獲和冒泡是DOM中事件傳播的兩個(gè)階段,捕獲是從頂層向下到目標(biāo)元素,冒泡是從目標(biāo)元素向上傳播到頂層。1.事件捕獲通過addEventListener的useCapture參數(shù)設(shè)為true實(shí)現(xiàn);2.事件冒泡是默認(rèn)行為,useCapture設(shè)為false或省略;3.可使用event.stopPropagation()阻止事件傳播;4.冒泡支持事件委托,提高動(dòng)態(tài)內(nèi)容處理效率;5.捕獲可用于提前攔截事件,如日志記錄或錯(cuò)誤處理。了解這兩個(gè)階段有助于精確控制JavaScript響應(yīng)用戶操作的時(shí)機(jī)和方式。

JavaScript:探索用于高效編碼的數(shù)據(jù)類型 JavaScript:探索用于高效編碼的數(shù)據(jù)類型 Jun 20, 2025 am 12:46 AM

javascripthassevenfundaMentalDatatypes:數(shù)字,弦,布爾值,未定義,null,object和symbol.1)numberSeadUble-eaduble-ecisionFormat,forwidevaluerangesbutbecautious.2)

JavaScript模塊上的確定JS綜述:ES模塊與COMPORJS JavaScript模塊上的確定JS綜述:ES模塊與COMPORJS Jul 02, 2025 am 01:28 AM

ES模塊和CommonJS的主要區(qū)別在于加載方式和使用場(chǎng)景。1.CommonJS是同步加載,適用于Node.js服務(wù)器端環(huán)境;2.ES模塊是異步加載,適用于瀏覽器等網(wǎng)絡(luò)環(huán)境;3.語法上,ES模塊使用import/export,且必須位于頂層作用域,而CommonJS使用require/module.exports,可在運(yùn)行時(shí)動(dòng)態(tài)調(diào)用;4.CommonJS廣泛用于舊版Node.js及依賴它的庫(kù)如Express,ES模塊則適用于現(xiàn)代前端框架和Node.jsv14 ;5.雖然可混合使用,但容易引發(fā)問題

See all articles