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

相关文章
相关标签/搜索