nuxt.js實戰踩坑記錄

讀萬卷書不如行萬里路,必須實踐出真理!javascript

看官方文檔安裝項目vue init nuxt-community/starter-template <project-name>注意:這是新手項目不適合直接用的html

用我用的express的官方項目vue init nuxt/express  <project-name>vue

大神有講解可是沒有源碼https://juejin.im/post/598aabe96fb9a03c335a8ddejava

1.使用FormData提交文件時node

上傳的內容保存在Request Payload中而不是請求信息的body中express

由於HTTP POST表單請求提交時,使用的Content-Type是application/x-www-form-urlencoded,而使用原生AJAX的POST請求若是不指定請求頭RequestHeader,默認使用的Content-Type是text/plain;charset=UTF-8。Content-Type不是application/x-www-form-urlencoded的POST請求是不會讀取請求體數據和進行相應的參數處理的

解決方案:

一、設置請求的Content-type字段爲application/x-www-form-urlencodednpm

xhr.open("post", "/register", true); xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); xhr.send(formData); 

此時在後臺能夠獲取到req.body中的數據。json

二、使用express的中間件connect-multiparty ,它是專門處理此類post數據相關的依賴包。
安裝依賴之後在服務器端使用:bash

var multipart = require('connect-multiparty'); var multipartMiddleware = multipart(); app.post('/register', multipartMiddleware, function(req, res) { console.log('get FormData Params: ', req.body); });
參考地址:https://www.jianshu.com/p/39178bc6a833
可是增長了
就不會執行了因此不能加



-----------------------------------------------
上線問題在本地打包npm run build是沒有問題的
可是到線上虛擬機上打包就有問題了
一直給我報xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");後後臺nodereq.body有值
可是var form = new formidable.IncomingForm();
form.parse(req, function(err, fields, files) {}

npm ERR! code ELIFECYCLE
npm ERR! errno 137
npm ERR! nuxttest1@1.0.0 build: `nuxt build && backpack build`
npm ERR! Exit status 137服務器

這個問題是由於內存不足致使

加上管理員權限 sudo npm run build網上說能夠得到更多的內存吧好像

可是我一直報 sudo npm command not found

chmod -R 755 /opt/node
sudo ln -s /{本身的路徑}/node  /usr/bin/node
sudo ln -s /opt/node/lib/node  /usr/lib/node
sudo ln -s /opt/node/bin/npm  /usr/bin/npm
這樣獲取後就能夠sudo了
可是個人虛擬機實在太差了因此仍是不行,只能本地打包後再丟上去虛擬機跑了

nuxt.js源代碼若是不想放在服務器上,能夠刪除除了.nuxt, build, node_modules文件夾和package.json文件的其餘文件和文件夾,可是每次發佈build和.nuxt兩個文件夾和package.json文件須要進行更新,若有依賴包更新,直接運行更新依賴包命令就能夠了

另外默認的服務是host在127.0.0.1本機上,在部分服務器上,如雲服務器使用虛擬ip的服務器上,localhost和127.0.0.1均可以訪問,可是使用內網的ip沒法訪問,這也直接致使了服務器外網即便端口開啓了,也沒有辦法訪問站點,須要更改server/index.js的host配置,去掉host參數

而後從新編譯運行,發佈就能夠了。

 nuxt.js還在發展階段,很期待即將到來的1.0的版本,其實如今線上的項目已經開始使用了,若是以爲不錯,那麼試一試吧,用得人多了,發展也就更快了!

chmod xxx < file-name > 常常要用改目錄權限否則傳不上 -f遍歷

參考https://www.cnblogs.com/stealth7/p/7299614.html

而後用pm2來管理node進程就不須要一直開着窗口pm2 start npm --name "進程名字" -- run start

相關文章
相關標籤/搜索