Open zzly00 opened 5 years ago
// model/user.js
module.exports = {
getUser: (callback) => {
callback({
name: 'abc'
})
}
}
// app.js
const userModel = require('./model/user')
app.get('/', function (req, res) {
userModel.getUser((user)=>{
res.render('index',{
message: user.name
})
})
});
yarn add mysql
範例:
// model.js
const mysql = require('mysql');
const connection = mysql.createConnection({
host : '',
user : '',
password : process.env.PWD || '', // 不直接將密碼寫在 code 中,在 cli 中 `PWD=password node model.js`
database : ''
});
connection.connect();
connection.query('SELECT * FROM users', function (error, results, fields) {
if (error) throw error;
console.log('response', results);
})
connection.end()
PWD=password node model.js
,run.sh 記得放在 .gitignore 裡;執行時,cli 指令為 sh run.sh
yarn add express-session
const session = require('express-session');
app.use(session({ secret: 'keyboard cat', cookie: { maxAge: 60000 }}));
app.get('/', function (req, res) { const username = req.session.username; res.render('index',{ message: username ? username : 'not login' }) });
// 設置 session app.get('/login', function(req, res) { req.session.username = 'abc'; res.send('login success'); })
// 清 session app.get('/logout', function(req, res) { req.session.destroy(); res.send('clear session'); })
```javascript
// 給 model 的範例
app.get('/login', function(req, res) {
userModel.login(req.query.username, req.query.password, function(result){
if(result){
req.session.username = result.username;
res.redirect('/');
}else{
res.send('login fail');
}
})
})
yarn add sequelize
// ./model/db.js
const Sequelize = require('sequelize');
const db = new Sequelize('database', 'username', 'password', { host: '', dialect: 'mysql', }); db .authenticate() .then(() => { console.log('Connection has been established successfully.'); }) .catch(err => { console.error('Unable to connect to the database:', err); });
module.exports = db;
```javascript
// ./model/user.js
const Sequelize = require('sequelize');
const db = require('./db');
const User = db.define('user', {
u_id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true
},
username: {
type: Sequelize.STRING(20)
},
password: {
type: Sequelize.STRING(256)
},
nickname: {
type: Sequelize.STRING(64)
},
avatar: {
type: Sequelize.STRING(500)
},
status: {
type: Sequelize.BOOLEAN,
defaultValue: true
},
create_time: {
type: Sequelize.DATE,
defaultValue: Sequelize.NOW
},
update_time: {
type: Sequelize.DATE
}
}, {
tableName: 'zzly00_users',
createdAt: false,
updatedAt: false
});
User.sync();
module.exports = User;
// app.js
const User = require('./model/user');
app.get('/', (req, res) => {
User
.create({username: 'test', password: 'aaa', nickname: 'test'})
.then(() => {
console.log('created');
})
})
Express
install
yarn add express
template engine
yarn add ejs
static file
app.use(express.static('public'))
app.get(){}
額外補充資料