0
當我試圖在Express中執行PUT請求時,它給了我這個錯誤,我不確定它的含義。ExpressJS Object PUT,DELETE沒有方法'toLowerCase'
這是我的玉:
extends layout
block content
form(method="post" action="/meals/#{meal[0].id}", id="mealForm")
input(type="hidden", name="_method", value="PUT")
h4 Meal Type
input.span3(id="mealType", type="text", name="MealType", value="#{meal[0].meal_type}")
br
h4 Meal Details
input.span3(id="mealDetails", type="text", name="MealDetails", value="#{meal[0].meal_details}")
br
input.btn(type="submit", class="btn btn-primary btn-lg" value="Update")
form(method="post" action="/meals/#{meal[0].meal_id}", id="mealForm")
input(type="hidden", name="_method", value="DELETE")
input.btn(type="submit", class="btn btn-danger btn-lg" style='margin-left: 1px;' value="Delete")
我不明白爲什麼這是行不通的。這是我的app.js:
app.put('/meals/:id', meal.getMeal)
在meals.js
exports.getMeal = function(req, res){
console.log('sa')
id = req.params.id
query = "Select * \
From nutrition \
Where id=%"
query = query.replace(/%/g, id)
db.query(query, function(err, row) {
console.log(query);
if (err) console.log(err)
res.render('edit', { meal: row });
})
}
堆棧跟蹤:
500 TypeError: Object PUT,DELETE has no method 'toLowerCase'
at Object.methodOverride [as handle] (\middleware\methodOverride.js:37:30)
安置自己的ExpressJS配置代碼 –
開始使用'var'每一個新的變量之前(如'id'和'query')。 – robertklep
查詢是一個全局變量。我會把它放在身份證上。 @hilarudeens我不知道你的意思是什麼文件,但我發佈package.json的快遞http://jsfiddle.net/aUDuL/ – user2417731