Javascript 我正在尝试从节点JS/Express连接到postgres数据库。邮递员没有回应

Javascript 我正在尝试从节点JS/Express连接到postgres数据库。邮递员没有回应,javascript,node.js,postgresql,express,Javascript,Node.js,Postgresql,Express,在某一点上,该端口处于活动状态并正常工作,但在Postman中没有响应 现在它甚至不承认express,即使它包含在内。有人能帮我一下吗,我已经试着解决这个问题好几天了 我尝试使用knex连接到postgres数据库,在Pg admin中创建了该数据库,但不起作用。我想有几个路径来登录、注册和删除用户配置文件,但由于某种原因,Express似乎不起作用。我试图将app.post(register)中的.catch更改为.catch(err=>res.json(err)),并且为Chrome安装了

在某一点上,该端口处于活动状态并正常工作,但在Postman中没有响应

现在它甚至不承认express,即使它包含在内。有人能帮我一下吗,我已经试着解决这个问题好几天了

我尝试使用knex连接到postgres数据库,在Pg admin中创建了该数据库,但不起作用。我想有几个路径来登录、注册和删除用户配置文件,但由于某种原因,Express似乎不起作用。我试图将app.post(register)中的.catch更改为.catch(err=>res.json(err)),并且为Chrome安装了corse扩展,但也没有成功。我修改了代码中的一些单词(来自我的母语,因此更易于查看,如果我错过了某个位置,我很抱歉…我必须粘贴整个代码,因为错误可能出现在我省略的部分中。此时,在输出中,Express未被识别为已安装

const express = require('express');
const bodyParser = require('body-parser');
const bcrypt = require('bcrypt-nodejs');
const cors = require('cors');
const knex = require('knex');


const app = express();
app.use(bodyParser.json());
app.use(cors());

let db = knex({
    client: 'pg',
    connection: {
      host : '127.0.0.1',
      user : 'postgres',
      password : '12345',
      database : 'users'
    }
  });
/*app.get('/', (req, res) => {
  db.select('*').from('users').then(data => {res.json(data)});
})*/
//USER LOGIN
  app.post('/signin', (req, res) => {
    db.select('email', 'hash').from('login')
      .where('email', '=', req.body.email)
      .then(data => {
        const isValid = bcrypt.compareSync(req.body.password, data[0].hash);    
        if (isValid) {
        return db.select('*').from('login')
        .where('email', '=', req.body.email)
        .then(user => {
          res.json(user[0])
        })
        .catch(err => res.status(400).json('Cannot find user'))
        } else {
          res.status(400).json('Incorrect log in data')
        }
       })
       .catch(err => res.status(400).json('Incorrect data'))
    });
// REGISTER USER
    app.post('/register', (req, res) => {
      const {email, name, password} = req.body;
      const hash = bcrypt.hashSync(password);
          db.transaction(trx => {
            trx.insert({
              hash: hash,
              email: email
            })
            .into('login')
            .returning('email')
            .then(loginEmail => {
                return trx('users')
                  .returning('*')
                  .insert({
                    email: loginEmail[0],
                    name: name,
                    resgistered: new Date()
                  })
                .then(user => {
                  res.json(user[0]);
                })
            })
            .then(trx.commit)
            .catch(trx.rollback)
          })
          .catch(err =>res.json(err))
    });
// user profile
    app.get('/profile/:id', (req, res) => {
        const {id} = req.params;
        db.select('*').from('users').where( {id: id})
        .then(user => {
        if (user.length) {
        res.json(user[0])
        } else {
        res.status(400).json('User not found')
        }
        });
    });

    app.get('/allusers', (req, res) => {
      //const {id} = req.params;
      //db.select('*').from('korisnici').then(data => {console.log(data)});
      db.select('*').from('users').then(data => {res.json(data)});
    });
//delete user
app.delete('/users/:name', (req, res) =>{
  const email = req.params.email;
  db.select()
    .from('users').where({email: email}).del()
    .then((users) =>{
        db.select()
        .from('login').where({email: email}).del()
        .then(() => {
            res.json(`user ${email} deleted`);
        });
    }).catch((error) => {
        console.log(error);
    });
});
//APPLICATION PORT
app.listen(3000, () =>{
    console.log(('Port 3000 active'));
    //res.send('Database active at port 3000')
});

确保已安装
pg
模块:

 npm install pg --save
你确定你的数据库被称为
users
?如果是这样,那么在你的情况下,你需要
users
db中的
login
表。然后还从pg admin向你的
用户插入一些数据。login

您也可以尝试使用SQL查询直接从pg admin查询数据,以确保数据确实存在:

SELECT * FROM users.login;
然后创建以下路线:

app.get('/', (req, res) => {
  db.select('*').from('login').then(data => {
    console.log(data);
    res.json(data);
  });
});
然后尝试从邮递员那里发送请求
GEThttp://localhost:3000

注意:我建议您在db中使用正确的表命名,但不确定是否要调用表
登录
。请尝试使用async\Wait而不是嵌套
。然后


另一个解决方案是按照以下简单的方法从头开始创建一个项目

如果有错误消息,请包括错误消息:ReferenceError:app未在Object中定义。(c:\Users\AmlebC\Desktop\projekat\tempCodeRunnerFile.js:1:63)在Module中。_compile(Module.js:643:30)在Object.Module中。_extensions..js(module.js:654:10)在Function.module.load(module.js:556:32)在tryModuleLoad(module.js:499:12)在Function.module.runMain(module.js:684:10)在bootstrap_节点启动(bootstrap_node.js:187:16)时加载(module.js.js:491:3)在启动(bootstrap_node.js:187:16)时加载(module.js:608:3[Done]退出,代码=1在4.492秒中返回。这是我的json文件“projekat”、“version”:“1.0.0”、“description”:“novi projekat”、“main”:“server.js”、“scripts”:{“test”:“echo”错误:未指定测试“&&exit 1”、“start”:“node server.js”},“author”:“license”:“ISC”、“dependencies”:“{“bcrypt”:“^3.0.6”、“body parser”:“^1.18.3”、“cors”:“^2.8.5”、“express”:”^4.16.4、“knex”:“^0.16.5”、“nodemon”:“^1.18.11”、“pg”:“^7.10.0”}