Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用表单在PSQL数据库中插入数据_Javascript_Node.js_Express - Fatal编程技术网

Javascript 使用表单在PSQL数据库中插入数据

Javascript 使用表单在PSQL数据库中插入数据,javascript,node.js,express,Javascript,Node.js,Express,我试图用表单在数据库中插入数据,但我有一个问题,你能帮我一下吗?我使用的是NODE js express PSQL和EJS -------------------------------我的路由器---------------------- //on importe le module express const express = require('express'); const router = express.Router(); //import des controleurs

我试图用表单在数据库中插入数据,但我有一个问题,你能帮我一下吗?我使用的是NODE js express PSQL和EJS

-------------------------------我的路由器----------------------

    //on importe le module express
const express = require('express');
const router = express.Router();

//import des controleurs
const mainController = require('./controllers/mainController');
const shortcutController = require('./controllers/shortcutController');
//const newsController = require('./controllers/newsController');
//const postitController = require('./controllers/postitController ');

//page d'accueil
router.get('/',mainController.home);


//Gerer les Web shortcuts
router.get('/:id',shortcutController.shortcut);


//Gerer les ajouts de raccourcis web

router.post('/formData', shortcutController.addShortcut);

//traitement des erreurs
router.use(mainController.notFound);

//on exporte le routeur pour l'utiliser dans d'autres modules de notre app
module.exports = router;
    const dataMapper = require('../dataMapper');

const shortcutController = {
    shortcut: (request, response, next) => {
        //on récupère l'id de la promo dans les paramètres de l'url
        const userId = request.params.id;

        dataMapper.shortcut(userId, (shortcut) => {
            if (!shortcut) {
                next();
            } else {
                response.render('shortcut', {shortcut});
            }
        });
    },

    addShortcut: function(request, response) {
        const shortcut = {};
        shortcut.name = request.body.shortcut_name;
        shortcut.link = request.body.shortcut_link;
        shortcut.logo = request.body.shortcut_logo;
        shortcut.user = request.body.shortcut_user;
        const renderShortcut = (error, results)=>{
            if(error){
               console.error(error);
               // Un render sur ta page ejs shortcutPage avec un message d'erreur si la requête à plantée
               // PI : HTML ERROR 406 - Not Acceptable --> Pour les paramètres de requête qui la ferait planter :)
               response.status(406).render('shortcut',{error:{message:"j'ai eu un problème!"}});
               return;
            }
            // Un render sur ta page ejs shortcutPage avec un message d'erreur si l'insert ne retourne aucune nouvelle ligne
            if(results.rows.length !== 1){
               response.status(406).render('shortcut',{error:{message:"j'ai eu un problème!"}});
               return;
            }
            response.redirect('/'); // Un redirect vers ton home. ou ailleurs :)
        }
        dataMapper.addShortcut(shortcut, renderShortcut); //tu passes à ton dataMapper un objet shortcut qui contient tes valeurs
    },

};

module.exports = shortcutController;
    //on centralise tous les accès à la BDD dans ce fichier
//on commence par importer le client postgres

const client = require('./database');


const dataMapper = {

        shortcut: (id, callback) => {
            client.query('SELECT * FROM "shortcut" WHERE shortcut_user=$1', [id], (error, results) => {
                if (error) {
                    console.log('erreur datamapper', error);
                    callback();
                } else {
                    const shortcuts = results.rows;
                    console.log(shortcuts);
                    callback(shortcuts);
                }
            });
        },


        addShortcut (shortcut, callback) {
            const query = {
                    text: `INSERT INTO "shortcut" WHERE shortcut_user="loic" ("shortcut_name", "shortcut_link", "shortcut_logo", "shortcut_user")
            VALUES ($1, $2, $3, $4) RETURNING *'}
        client.query(query,[shortcut.name,shortcut.link,shortcut.logo,shortcut.user],callback);
            },
};
module.exports = dataMapper;
------------------------------------我的控制器----------------------

    //on importe le module express
const express = require('express');
const router = express.Router();

//import des controleurs
const mainController = require('./controllers/mainController');
const shortcutController = require('./controllers/shortcutController');
//const newsController = require('./controllers/newsController');
//const postitController = require('./controllers/postitController ');

//page d'accueil
router.get('/',mainController.home);


//Gerer les Web shortcuts
router.get('/:id',shortcutController.shortcut);


//Gerer les ajouts de raccourcis web

router.post('/formData', shortcutController.addShortcut);

//traitement des erreurs
router.use(mainController.notFound);

//on exporte le routeur pour l'utiliser dans d'autres modules de notre app
module.exports = router;
    const dataMapper = require('../dataMapper');

const shortcutController = {
    shortcut: (request, response, next) => {
        //on récupère l'id de la promo dans les paramètres de l'url
        const userId = request.params.id;

        dataMapper.shortcut(userId, (shortcut) => {
            if (!shortcut) {
                next();
            } else {
                response.render('shortcut', {shortcut});
            }
        });
    },

    addShortcut: function(request, response) {
        const shortcut = {};
        shortcut.name = request.body.shortcut_name;
        shortcut.link = request.body.shortcut_link;
        shortcut.logo = request.body.shortcut_logo;
        shortcut.user = request.body.shortcut_user;
        const renderShortcut = (error, results)=>{
            if(error){
               console.error(error);
               // Un render sur ta page ejs shortcutPage avec un message d'erreur si la requête à plantée
               // PI : HTML ERROR 406 - Not Acceptable --> Pour les paramètres de requête qui la ferait planter :)
               response.status(406).render('shortcut',{error:{message:"j'ai eu un problème!"}});
               return;
            }
            // Un render sur ta page ejs shortcutPage avec un message d'erreur si l'insert ne retourne aucune nouvelle ligne
            if(results.rows.length !== 1){
               response.status(406).render('shortcut',{error:{message:"j'ai eu un problème!"}});
               return;
            }
            response.redirect('/'); // Un redirect vers ton home. ou ailleurs :)
        }
        dataMapper.addShortcut(shortcut, renderShortcut); //tu passes à ton dataMapper un objet shortcut qui contient tes valeurs
    },

};

module.exports = shortcutController;
    //on centralise tous les accès à la BDD dans ce fichier
//on commence par importer le client postgres

const client = require('./database');


const dataMapper = {

        shortcut: (id, callback) => {
            client.query('SELECT * FROM "shortcut" WHERE shortcut_user=$1', [id], (error, results) => {
                if (error) {
                    console.log('erreur datamapper', error);
                    callback();
                } else {
                    const shortcuts = results.rows;
                    console.log(shortcuts);
                    callback(shortcuts);
                }
            });
        },


        addShortcut (shortcut, callback) {
            const query = {
                    text: `INSERT INTO "shortcut" WHERE shortcut_user="loic" ("shortcut_name", "shortcut_link", "shortcut_logo", "shortcut_user")
            VALUES ($1, $2, $3, $4) RETURNING *'}
        client.query(query,[shortcut.name,shortcut.link,shortcut.logo,shortcut.user],callback);
            },
};
module.exports = dataMapper;
--------------------------我的数据映射器----------------------

    //on importe le module express
const express = require('express');
const router = express.Router();

//import des controleurs
const mainController = require('./controllers/mainController');
const shortcutController = require('./controllers/shortcutController');
//const newsController = require('./controllers/newsController');
//const postitController = require('./controllers/postitController ');

//page d'accueil
router.get('/',mainController.home);


//Gerer les Web shortcuts
router.get('/:id',shortcutController.shortcut);


//Gerer les ajouts de raccourcis web

router.post('/formData', shortcutController.addShortcut);

//traitement des erreurs
router.use(mainController.notFound);

//on exporte le routeur pour l'utiliser dans d'autres modules de notre app
module.exports = router;
    const dataMapper = require('../dataMapper');

const shortcutController = {
    shortcut: (request, response, next) => {
        //on récupère l'id de la promo dans les paramètres de l'url
        const userId = request.params.id;

        dataMapper.shortcut(userId, (shortcut) => {
            if (!shortcut) {
                next();
            } else {
                response.render('shortcut', {shortcut});
            }
        });
    },

    addShortcut: function(request, response) {
        const shortcut = {};
        shortcut.name = request.body.shortcut_name;
        shortcut.link = request.body.shortcut_link;
        shortcut.logo = request.body.shortcut_logo;
        shortcut.user = request.body.shortcut_user;
        const renderShortcut = (error, results)=>{
            if(error){
               console.error(error);
               // Un render sur ta page ejs shortcutPage avec un message d'erreur si la requête à plantée
               // PI : HTML ERROR 406 - Not Acceptable --> Pour les paramètres de requête qui la ferait planter :)
               response.status(406).render('shortcut',{error:{message:"j'ai eu un problème!"}});
               return;
            }
            // Un render sur ta page ejs shortcutPage avec un message d'erreur si l'insert ne retourne aucune nouvelle ligne
            if(results.rows.length !== 1){
               response.status(406).render('shortcut',{error:{message:"j'ai eu un problème!"}});
               return;
            }
            response.redirect('/'); // Un redirect vers ton home. ou ailleurs :)
        }
        dataMapper.addShortcut(shortcut, renderShortcut); //tu passes à ton dataMapper un objet shortcut qui contient tes valeurs
    },

};

module.exports = shortcutController;
    //on centralise tous les accès à la BDD dans ce fichier
//on commence par importer le client postgres

const client = require('./database');


const dataMapper = {

        shortcut: (id, callback) => {
            client.query('SELECT * FROM "shortcut" WHERE shortcut_user=$1', [id], (error, results) => {
                if (error) {
                    console.log('erreur datamapper', error);
                    callback();
                } else {
                    const shortcuts = results.rows;
                    console.log(shortcuts);
                    callback(shortcuts);
                }
            });
        },


        addShortcut (shortcut, callback) {
            const query = {
                    text: `INSERT INTO "shortcut" WHERE shortcut_user="loic" ("shortcut_name", "shortcut_link", "shortcut_logo", "shortcut_user")
            VALUES ($1, $2, $3, $4) RETURNING *'}
        client.query(query,[shortcut.name,shortcut.link,shortcut.logo,shortcut.user],callback);
            },
};
module.exports = dataMapper;