搜尋

首頁  >  問答  >  主體

node.js - 我用FormData() 來上傳圖片,後台nodejs,bodyparaer json方法解析失敗......程式碼如下

首先 目的是為了人們用的時候可以直接複製其他網頁上的圖片直接拷貝過來,上傳


codeMirror.on('paste', this.paste.bind(this));
//是不是在paste方法中就会有codemirror 的方法,知道的应该懂
const file = clipboard(e.clipboardData.items);


//上面那个方法就是 
function clipboard(items) {
  let i = 0;
  let item;
  while (i < items.length) {
    item = items[i];
    if (item.type.indexOf('image') !== -1) {
      return item;
    }
    i++;
  }
  return false;
}

為了取出來image的型別對吧

關鍵的地方來了

const formData = new FormData();
formData.append('file', file.getAsFile(), 'image.png');

然後我再ajax提交

tools.ajax({
             url: ajaxProps.action,
             method: 'POST',
             data:formData,
            //  headers:{'Content-Type':'application/json'},
             async: true,
             dataType:ajaxProps.dataType,
             processData: false,
         }).....

後台就簡寫express大神肯定知道
死套路

#
app.use(bodyParser.json());
// app.use(bodyParser.multipart());
app.use(bodyParser.urlencoded({extended: true}));

然後就報錯了

SyntaxError: Unexpected token -
    at parse (C:\Users\wb-yuhaiqing.a\Desktop\discount\web_corpoation\node_modules\.1.17.1@bo
dy-parser\lib\types\json.js:83:15)
    at C:\Users\wb-yuhaiqing.a\Desktop\discount\web_corpoation\node_modules\.1.17.1@body-pars
er\lib\read.js:116:18
    at invokeCallback (C:\Users\wb-yuhaiqing.a\Desktop\discount\web_corpoation\node_modules\.
2.2.0@raw-body\index.js:262:16)
    at done (C:\Users\wb-yuhaiqing.a\Desktop\discount\web_corpoation\node_modules\.2.2.0@raw-
body\index.js:251:7)
    at IncomingMessage.onEnd (C:\Users\wb-yuhaiqing.a\Desktop\discount\web_corpoation\node_mo
dules\.2.2.0@raw-body\index.js:307:7)
略

解析出了問題,怎麼辦,試了網上好多方法,比如 改header ,不用json ,我試了,還是會進入這個bodypaarser.json 方法裡面去,然後 抱一個 -- 的錯誤! !
求大神!有沒有人遇過類似問題

黄舟黄舟2774 天前894

全部回覆(1)我來回復

  • 巴扎黑

    巴扎黑2017-05-24 11:40:44

    然而我今日重啟專案以後 ,成功了。 我母雞啥原因,代碼沒改過, 奇葩! ! ! ! ! ! ! ! ! !

    回覆
    0
  • 取消回覆