Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var express = require("express");
- var app = express();
- var server = require("http").createServer(app);
- var io = require("socket.io").listen(server);
- var morgan = require('morgan');
- var mysql = require("mysql");
- var http = require('http');
- var fs = require('fs');
- var bodyParser = require('body-parser');
- var busboy = require('busboy');
- var inspect = require('util').inspect;
- // setup parser for request body content
- app.use(bodyParser.urlencoded({
- extended: false
- }));
- app.use(bodyParser.json());
- // use morgan to log requests to the console
- app.use(morgan('dev'));
- var PORT = 8099;
- var connectSQL = mysql.createConnection({
- host : 'localhost',
- user: 'root',
- pass : '',
- database : 'demologinandroid'
- });
- connectSQL.connect(function(error){
- if (error){
- console.log('Connect database Error');
- }else {
- console.log('Connect database Success');
- }
- });
- app.set('views',__dirname + '/views');
- app.set('view engine', 'ejs');
- app.engine('html', require('ejs').renderFile);
- app.use(express.static(__dirname + '/upload')); // set this as static dir to access directly all child folder n file inside
- app.set('upload_dir',__dirname + '/upload'); // set this value to key upload_dir
- io.sockets.on('connection', function(socket){
- console.log("Mobile connected");
- socket.on("CLIENT_REGISTER", function(data){
- var value = JSON.parse(data);
- var email = value.email;
- var pass = value.pass;
- connectSQL.query("INSERT INTO account VALUE( '" + email + "','" + pass + "')", function(error, rows, fields){
- if (error){
- io.emit("CLIENT_REGISTER", "Tai khoan da ton tai");
- }else{
- io.emit("CLIENT_REGISTER", "Dang ky thanh cong!");
- }
- });
- console.log("email: " + email + " pass: " + pass);
- });
- socket.on("CLIENT_GET_PRODUCT", function(data){
- var name = data.toString();
- console.log("Client request get product");
- connectSQL.query("SELECT * FROM sanpham WHERE name = '" + name + "'",
- //connectSQL.query("SELECT * FROM sanpham",
- function(error, rows, fields){
- if (error){
- io.emit("CLIENT_GET_PRODUCT", "Truy van that bai");
- console.log("Server respone error get product");
- }else{
- console.log("Server respone success get product")
- fs.readFile(rows[0].Link, function(error, data){
- if (!error){
- respone = {
- ID : rows[0].ID,
- Name : rows[0].Name,
- Link : data
- }
- console.log(data);
- console.log("Server respone info product")
- console.log(respone);
- io.emit("CLIENT_GET_PRODUCT", respone);
- }else{
- console.log("doc file that bai");
- }
- });
- }
- });
- });
- });
- server.listen(8099,function () {
- console.log("Express server listening on port %d in %s mode", this.address().port, app.settings.env);
- });
- // Routing
- app.get("/", function(req, res){
- res.writeHead(200, {'Content-Type': 'text/html'});
- res.write('<form action="upload" method="post" enctype="multipart/form-data">');
- res.write('Id<input type="text" name="id"><br>');
- res.write('Name<input type="text" name="name"><br>');
- res.write('<input type="file" name="filetoupload"><br>');
- res.write('<input type="submit">');
- res.write('</form>');
- return res.end();
- });
- var baseImgUrl = 'http://localhost' + ':' + PORT + '/';
- app.post('/upload', function(req, res) {
- // BUSBOY ============>>>>>>>>>>>>>
- // load module
- console.log(req.body);
- var path = require('path');
- var Busboy = require('busboy');
- var fs = require('fs');
- var full_path = app.get('upload_dir');
- var busboy = new Busboy({ headers: req.headers });
- var saveTo = '';
- var img_url = '';
- var files = [];
- var fstream;
- busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {
- //console.log('File [' + fieldname + ']: filename: ' + filename + ', encoding: ' + encoding + ', mimetype: ' + mimetype);
- var newFilename = new Date().getTime();
- newFilename = newFilename + '.' + filename.split('.')[1];
- saveTo = path.join(full_path, path.basename(newFilename));
- //console.log(saveTo);
- var img_url = baseImgUrl + newFilename;
- files.push(img_url);
- fstream = fs.createWriteStream(saveTo);
- file.pipe(fstream);
- // fstream.on('close', function(){
- // console.log('file ' + filename + ' uploaded');
- // files.push(baseImgUrl + account_id + '/avatar/' + filename);
- // });
- });
- var responeObj = {};
- // get key-value of multipart-form
- busboy.on('field', function(fieldname, val, fieldnameTruncated, valTruncated) {
- console.log('Field [' + fieldname + ']: value: ' + inspect(val));
- responeObj[fieldname] = inspect(val);
- });
- busboy.on('finish', function() {
- // update to database
- // res.status(200).send(files);
- // console.log(responeObj);
- // responeObj['image'] = files[0];
- // res.status(200).send(responeObj);
- // connectSQL.query("INSERT INTO sanpham VALUE ( '" + responeObj.id + "','" + responeObj.name + "','" + files[0] + "')",
- // function(error, rows, fileds){
- // if (error){
- // console.log("Error");
- // res.status(500).send(error);
- // }else{
- // console.log(files);
- // var respone = {
- // id:req.body.id,
- // name:req.body.name,
- // image:files[0]
- // };
- // res.status(200).send(respone);
- // }
- // });
- connectSQL.query({
- sql: 'INSERT INTO sanpham VALUE (?,?,?)',
- timeout: 1000, // 1s
- values:[responeObj.id,responeObj.name,files[0]]
- }, function (error, results, fields) {
- connection.release();
- if (error) {
- res.status(500).send('Internal Error');
- } else {
- responeObj['image'] = files[0];
- console.log(responeObj);
- res.status(200).send(responeObj);
- }
- });
- });
- // PROCESS
- req.pipe(busboy);
- });
- app.post("/fileupload", function(req, res){
- var form = new formidable.IncomingForm();
- form.parse(req, function (err, getInput, fileImage) {
- var oldname = fileImage.filetoupload.name;
- var newName = getInput.name + '.png';
- var oldpath = fileImage.filetoupload.path;
- var newpath = 'C:/Users/admin/Desktop/NODEJS/ServerAndroid2/images/'
- + newName;
- respone = {
- id:getInput.id,
- name:getInput.name,
- image:newpath
- };
- fs.rename(oldpath, newpath, function (err) {
- if (err) throw err;
- connectSQL.query("INSERT INTO sanpham VALUE ( '" + getInput.id + "','" + getInput.name + "','" + newpath + "')",
- function(error, rows, fileds){
- if (error){
- console.log("Loi");
- }else{
- console.log("Thanh cong");
- console.log(respone);
- }
- });
- res.end(JSON.stringify(respone));
- });
- });
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement