nodeはローカルファイルを構築してサーバーをアップロードします.
ずっとnodeを使ってファイルサーバーを作ってみたいです.今日は簡単に書いてみました.後は徐々に完璧になります.一緒に勉強します.
まず、私達はファイルをアップロードする時、多くの時にファイルサーバに使用します.先端から言えば、ファイルサーバをファイルサーバにアップロードして、ファイルサーバを私達にアップロードしたファイルの訪問先に返します.
つまり、ファイルサーバはまず私達の前端にアップロードされたデータを読み取ってから、サーバーの指定されたディレクトリにファイルを保存して、最後に保存先をデータベースに保存して、フロントに返す必要があります.
原理を知ってから、考え方が明確になります.
準備工作
nodeの環境を保証する必要があります.
具体的なnodeのインストール(windowsとlinux)はブロガーのもう一つのブログを見ます.https://blog.csdn.net/rolinabc/article/details/99623255?spm=1001.2014.3005.1501
フォルダnode(任意の名前)を作成し、ファイルserve.js(サーバファイル)とindex.htmlを作成します.また、uploadsフォルダがあります.
nodeフォルダの下でコンソールを開き、npm initを実行します.実行が完了すると、一つのpackage.jsonファイル、すなわちプロファイルが生成されます.
serverファイルの完備
具体的なコードは下記の通りです.コメントはとても詳しいですよ.
私はここでvueを使っています.これは大丈夫です.参考までに自分で書いてもいいです.
このステップは比較的簡単です.結局パスは全部手に入れました.
データをデータベースに挿入できないなら、私のもう一つのブログを見ることができます.https://blog.csdn.net/rolinabc/article/details/107003549?spm=1001.2014.3005.1501
(狂ったアムウェイ自身のブログ、あははははは)
先のおかずは鳥です.指摘して、一緒に勉強して、進歩してほしいです.
まず、私達はファイルをアップロードする時、多くの時にファイルサーバに使用します.先端から言えば、ファイルサーバをファイルサーバにアップロードして、ファイルサーバを私達にアップロードしたファイルの訪問先に返します.
つまり、ファイルサーバはまず私達の前端にアップロードされたデータを読み取ってから、サーバーの指定されたディレクトリにファイルを保存して、最後に保存先をデータベースに保存して、フロントに返す必要があります.
原理を知ってから、考え方が明確になります.
準備工作
nodeの環境を保証する必要があります.
具体的なnodeのインストール(windowsとlinux)はブロガーのもう一つのブログを見ます.https://blog.csdn.net/rolinabc/article/details/99623255?spm=1001.2014.3005.1501
フォルダnode(任意の名前)を作成し、ファイルserve.js(サーバファイル)とindex.htmlを作成します.また、uploadsフォルダがあります.
nodeフォルダの下でコンソールを開き、npm initを実行します.実行が完了すると、一つのpackage.jsonファイル、すなわちプロファイルが生成されます.
serverファイルの完備
具体的なコードは下記の通りです.コメントはとても詳しいですよ.
// npm install express formidable
// , uploads
var Express = require('express');
var App = Express();
var Path = require('path');
var Formidable = require('formidable');
var FS = require('fs');
App.all('*',function (req, res, next) {
//
res.header('Access-Control-Allow-Origin', '*');
//
res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild');
//
res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS');
next();
});
App.post('/upload', function(req, res){
//
var form = new Formidable.IncomingForm();
// , form.parse() , files file , File , html5 multiple 。
form.multiples = true;
// , /uploads
form.uploadDir = Path.join(__dirname, '/uploads');
var dirUrl
//
form.on('file', function(field, file) {
var newName = file.name;
//
FS.rename(file.path, Path.join(form.uploadDir,newName),function(err) {
if(err){
throw err;
}
});
//
dirUrl = Path.join(form.uploadDir,newName)
});
//
form.on('error', function(err) {
console.log('An error:
' + err);
});
// ,
form.on('end', function() {
res.send(dirUrl);
});
//
form.parse(req);
});
//
var server = App.listen(1000, function(){
console.log('Files Server listening on port 1000');
})
先端のテストコード私はここでvueを使っています.これは大丈夫です.参考までに自分で書いてもいいです.
Document
new Vue({
el:'#main',
data:{}
})
上のコードに合わせて、ローカルファイルサーバを構築します.もちろん、私は直接に一回であなたがアップロードしたファイルのパスに戻りました.そのパスをデータベースに保存していません.このステップは比較的簡単です.結局パスは全部手に入れました.
データをデータベースに挿入できないなら、私のもう一つのブログを見ることができます.https://blog.csdn.net/rolinabc/article/details/107003549?spm=1001.2014.3005.1501
(狂ったアムウェイ自身のブログ、あははははは)
先のおかずは鳥です.指摘して、一緒に勉強して、進歩してほしいです.