各位大神,小弟剛接觸node.js與jade
這次在實驗mssql的CRUD功能實遇到了一些問題
我參考這位大大http://ithelp.ithome.com.tw/articles/10160463
的程式碼去撰寫,不過我使用的工具是mssql
以下是update.jade的內容
h1=title
- userVar=street_artist
- if(userVar)
form(method='post',action='/update')
fieldset
legend=title
div.clearfix
label 真實姓名
div.input input(name='artist[name]',class='xlarge',value=street_artist.name)
input(name='artist[fan_club]',class='xlarge',value=street_artist.fan_club)
div.actions
input(type='submit',value='儲存',class='btn primary')
button(type='reset',class='btn') 清除
以下是index.jade的內容
table
thead
tr
th(data-field="artist_id",align="cemter",style="padding:5px").inner 藝人編號
th(data-field="name",align="cemter",style="padding:5px").inner 真名
-each street_artist in items
tr
td(style="padding:5px")=street_artist.artist_id
td(style="padding:5px")=street_artist.name
td
a(href='/update/#{street_artist.artist_id}', class='btn btn-warning') 更新
a(href='/delete/#{street_artist.artist_id}', class='btn btn-danger') 刪除
最後這是app.js
app.get('/update/:id', function (req, res) {
var conn = new sql.Connection(dbConfig);
var req = new sql.Request(conn);
conn.connect(function (err) {
req.query("SELECT * FROM street_artist where street_artist.artist_id="+"'"+ req.params.id+"'", function (err, recordset) {
if (err) {
console.log(err);
}
else {
console.log('search is success.');
res.render('create', {
title : 'Update user',
user : rows[0]
});
}
conn.close();
})
})
});
app.post('/update', function (req, res) {
pool.getConnection(function (err, connection) {
connection.query('update users set ? where id = ?', [{
id : req.body.user.id,
name : req.body.user.name,
description : req.body.user.description
}, req.body.user.id], function (err, fields) {
if (err)
throw err;
});
connection.query('SELECT * from users', function (err, rows, fields) {
if (err)
throw err;
res.render('user', {
title : '使用者列表',
user : rows
});
});
connection.release();
});
});
感覺我在觀念上似乎有錯誤,我這樣的作法最後導向到的網頁是.../update/id
但是網頁長這樣,請問我的錯誤在哪裡呢?
或是在node.js中MYSQL要如何轉換成MSSQL呢?
感謝各位大大
稍微看了一下程式碼,主要有幾個問題:
ps. 建議更新不用跳轉頁面,改用popup或其他方式會讓UX提升許多