国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

網(wǎng)站建設(shè)常用代碼營(yíng)銷(xiāo)策劃36計(jì)

網(wǎng)站建設(shè)常用代碼,營(yíng)銷(xiāo)策劃36計(jì),微信24小時(shí)人工客服找回密碼,團(tuán)購(gòu)網(wǎng)站APP怎么做express框架,在上傳圖片功能方面,用formidable里面的incomingform功能,很方便。很多功能都已經(jīng)封裝好了,非常好用,簡(jiǎn)單,不需要寫(xiě)更深層次的代碼了。確實(shí)不錯(cuò)。 下面是我自己跟著黑馬教程的博客系統(tǒng)的部分&…

express框架,在上傳圖片功能方面,用formidable里面的incomingform功能,很方便。很多功能都已經(jīng)封裝好了,非常好用,簡(jiǎn)單,不需要寫(xiě)更深層次的代碼了。確實(shí)不錯(cuò)。

下面是我自己跟著黑馬教程的博客系統(tǒng)的部分,自己寫(xiě)的上傳文件的過(guò)程。記錄一下。

express框架里面,

app.js

var createError = require("http-errors");
var express = require("express");
var path = require("path");
var cookieParser = require("cookie-parser");
var logger = require("morgan");var indexRouter = require("./routes/index");
var usersRouter = require("./routes/users");var app = express();// view engine setup
app.set("views", path.join(__dirname, "views"));
app.engine("art", require("express-art-template"));
app.engine("html", require("express-art-template"));
app.set("view engine", "art");
// app.engine("ar", fn)app.use(logger("dev"));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, "public")));app.use("/", indexRouter);
app.use("/users", usersRouter);// catch 404 and forward to error handler
// app.use(function (req, res, next) {
//     next(createError(404));
// });// error handler
// app.use(function (err, req, res, next) {
//     // set locals, only providing error in development
//     res.locals.message = err.message;
//     res.locals.error = req.app.get("env") === "development" ? err : {};//     // render the error page
//     res.status(err.status || 500);
//     // res.render("error");
//     // console.log("errors::::");
//     // next();
// });// app.get("/upload", require("./routes/upImg"));
app.get("/upload", function (req, res) {res.render("index.html");
});app.post("/upload", require("./routes/upload"));app.listen(3000, function () {console.log("server 3000");
});
// module.exports = app;

這里我直接使用的是art模板,比較喜歡art,ejs模板里面的尖括號(hào),實(shí)在有點(diǎn)反人類(lèi),感覺(jué)尖括號(hào)闊的人都暈了,還是art更加簡(jiǎn)潔。另外把一些報(bào)錯(cuò)的信息直接給屏蔽掉了,error有的話(huà)不再渲染error,直接打印出來(lái),可以更方面調(diào)試。

index頁(yè)面直接就是上傳文件和填寫(xiě)表單的頁(yè)面,因此,直接在index的路由里面,不用管,

接受上傳的頁(yè)面是upload,寫(xiě)在app.js里面了,后面可以封裝起來(lái), 不過(guò)upload本來(lái)就是封裝的。

upload文件

upload.js

const formidable = require("formidable");
const path = require("path");module.exports = (req, res) => {const form = new formidable.IncomingForm();form.uploadDir = path.join(__dirname, "../", "public", "uploads");// console.log(form.uploadDir);//3.保留文件的后綴form.keepExtensions = true;// console.log(form);//4.解析表單form.parse(req, (err, fields, files) => {//  1. err是錯(cuò)誤對(duì)象,如果保存失敗,存儲(chǔ)蜈信息。/// 2.fields 對(duì)象類(lèi)型// 3. files 對(duì)象類(lèi)型,保存了和上傳文件相關(guān)的數(shù)據(jù).// 4.console.log("**************");console.log(files.cover.originalFilename,"\n",files.cover.newFilename);extName = files.cover.originalFilename.split(".")[1];console.log(extName);// xx =// res.send();res.send(files);});// res.send("ok");
};

formidable 模塊的incomingForm對(duì)象可以接受內(nèi)容包括文字、圖片等,當(dāng)然其他的不知道能不能接受。

另外設(shè)置了上傳文件的額地址是在public下面的uploads

form.parse,可以解析整個(gè)req,拿出req里form表單的內(nèi)容。表單控件里,可以是input的text,也可以是input的 file

index文件如下:

index.html

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><link rel="stylesheet" href="/stylesheets/bootstrap.min.css"><script src="/javascripts/jquery.min.js"></script><script src="/javascripts/bootstrap.min.js"></script><style>.form-control {width: 50%;}label {padding: 10px;}</style>
</head><body><h1>hello{{ title }}</h1><form action="/upload" class="form-container" method="post" enctype="multipart/form-data"><div class="form-group"><label for="">標(biāo)題</label><input type="text" name="title" class="form-control"></div><div class="form-group"><label for="">作者</label><input type="text" name="author" class="form-control"></div><div class="form-group"><label for="">圖片</label><input type="file" name="cover" id="file"><div class="thumbnail-waper"><img src="" alt="" class="img-thumbnail" id="preview" style="width: 400px; height: auto"></div></div><div class="form-group"><label for="">內(nèi)容</label><textarea name="content" id="content" cols="30" rows="10" class="form-control"></textarea></div><div class="buttons"><input type="submit" class="btn btn-primary"></div></form><script>//選擇文件上傳空間var file = document.querySelector("#file");var preview = document.querySelector("#preview")//當(dāng)用戶(hù)選擇完文件之后file.onchange = function() {var reader = new FileReader();//代表用戶(hù)選擇的文件列表// console.log(this.files[0]);//2.讀取文件reader.readAsDataURL(this.files[0])// 3. 監(jiān)聽(tīng) onload事件reader.onload = function() {console.log(reader.result);preview.src = reader.result}}</script></body></html>

里面就一個(gè)大的form,其實(shí)不復(fù)雜。

下面,在body上方,插入一段js,主要兩個(gè)工作,1.接收上傳的圖片,2.當(dāng)圖片上傳完之后,渲染出圖片。還是很不錯(cuò)的。

如下圖:

?

?今天搞了一天,也算是把express的文件部分弄明白了。感覺(jué)學(xué)習(xí)就是,黑馬的視頻還是很不錯(cuò),反復(fù)看,做出來(lái)一個(gè)項(xiàng)目,然后再把項(xiàng)目里面的細(xì)節(jié)反復(fù)做幾遍,弄出自己的東西,整體之后,把各個(gè)小的知識(shí)點(diǎn)再鉆研透了。就OK了

http://aloenet.com.cn/news/41097.html

相關(guān)文章:

  • 直播視頻網(wǎng)站如何做網(wǎng)站策劃
  • 佛山專(zhuān)業(yè)做企業(yè)網(wǎng)站上海今天最新發(fā)布會(huì)
  • 吉 360 網(wǎng)站建設(shè)如何做好精準(zhǔn)營(yíng)銷(xiāo)
  • 網(wǎng)站客服工作內(nèi)容重慶網(wǎng)站建設(shè)哪家好
  • 凡客專(zhuān)賣(mài)店網(wǎng)站優(yōu)化入門(mén)
  • 安徽國(guó)貿(mào)集團(tuán)網(wǎng)站建設(shè)沈陽(yáng)網(wǎng)站推廣優(yōu)化
  • 合肥專(zhuān)業(yè)做網(wǎng)站的互聯(lián)網(wǎng)域名注冊(cè)查詢(xún)
  • 做網(wǎng)站拍攝照片用什么佳能相機(jī)好網(wǎng)站優(yōu)化課程培訓(xùn)
  • 哪個(gè)網(wǎng)站可以做社工試題網(wǎng)絡(luò)服務(wù)器
  • 湖北住房和城鄉(xiāng)建設(shè)委員會(huì)網(wǎng)站東莞市民最新疫情
  • 三門(mén)峽集團(tuán)網(wǎng)站建設(shè)愛(ài)站網(wǎng)關(guān)鍵詞查詢(xún)工具
  • 有沒(méi)有人與動(dòng)物做的電影網(wǎng)站自己做網(wǎng)站怎么做
  • 自適應(yīng)全屏網(wǎng)站競(jìng)價(jià)排名名詞解釋
  • 網(wǎng)站建設(shè)網(wǎng)站排名優(yōu)化金牌服務(wù)搜索引擎排名影響因素有哪些
  • 房屋網(wǎng)簽查詢(xún)系統(tǒng)官方網(wǎng)站知乎推廣
  • 個(gè)人網(wǎng)站怎么做推廣好口碑關(guān)鍵詞優(yōu)化
  • 深圳市網(wǎng)站維護(hù)seo短視頻網(wǎng)頁(yè)入口
  • 營(yíng)銷(xiāo)公關(guān)seo關(guān)鍵詞找29火星軟件
  • wordpress博客實(shí)戰(zhàn)青島百度整站優(yōu)化服務(wù)
  • 網(wǎng)站圖文列表seo優(yōu)化快排
  • 寧波網(wǎng)站建設(shè) 聯(lián)系哪家百度seo推廣免費(fèi)
  • 網(wǎng)站開(kāi)發(fā)的客戶(hù)群體淘寶新店怎么快速做起來(lái)
  • 查網(wǎng)站空間商seo是什么意思啊
  • 網(wǎng)站建設(shè)期任務(wù)及總結(jié)今日頭條號(hào)官網(wǎng)
  • 深圳市建筑工程佛山seo外包平臺(tái)
  • 網(wǎng)站開(kāi)發(fā) 參考文獻(xiàn)seo網(wǎng)絡(luò)優(yōu)化招聘信息
  • wordpress 屏蔽白云百度seo公司
  • 微信怎么制作微電影網(wǎng)站深圳seo優(yōu)化seo優(yōu)化
  • 2018年網(wǎng)站建設(shè)免費(fèi)拓客軟件
  • 滄州網(wǎng)站域名注冊(cè)服務(wù)公司seo網(wǎng)絡(luò)排名優(yōu)化技巧