javascript - Node JS 服务器运行但不工作,我能做什么?
问题描述
我正在使用 React JS、Node JS(Express、Express-session、cookieParser、bodyParser、express-vaidator、pg、bcrypt 和 cors)和 PostgresSQL 创建一个登录系统,但我的节点 js 服务器运行但不响应。没有打印错误在服务器控制台上!
这是我的节点 JS 代码:
var http = require('http') // Importa a biblioteca http
const express = require('express'); //Importa a biblioteca express
const session = require('express-session'); //Importa a biblioteca express
const cookieParser = require('cookie-parser'); //Importa a biblioteca express
const bodyParser = require('body-parser'); //Importa a biblioteca express
const { body, validationResult } = require('express-validator')
const { Pool } = require('pg') //Importa o gerenciador de coneção ao Postgress
const bcrypt = require('bcrypt')
const cors = require("cors")
const app = express(); //Inicializa um app express
app.use(express.json());
app.use(
cors()
);
app.use(cookieParser)
app.use(bodyParser.urlencoded({ extended: true }));
app.use(
session({
key: "userId",
secret: "subscribe",
resave: false,
saveUninitialized: false,
cookie: {
expires: 60 * 60 * 24,
},
})
);
const pool = new Pool({ //Cria o gerenciador passando como parametro um objeto com as configurações necessárias
host: 'localhost',
user: 'postgres',
password: 'root',
database: 'testOnfinity',
post: 5334
})
function loginUser(email, senha, callback) { //Função responsável de verificar se o usuário pode executar o login
console.log('Conectando...')
pool.connect((error, client, release) => {
if (error) { //Se houver erro na conexão retorna o erro completo
return console.error('Erro na conexão: ', error)
} else {
console.log('Conectado!')
}
client.query(`SELECT * FROM usuarios WHERE email = '${email}';`, (error, result) => {
release()
if (error) { //Se houver erro na execução da query retorna o erro completo
console.error('Erro na execução da query: ', error.stack)
} else {
console.log("Macthes: ", result.rows.length)
if(result.rows.length > 0){
bcrypt.compare(senha, result.rows[0].senha, (error, responseCompare) => {
req.session.user = result.rows
console.log(req.session.user)
callback(responseCompare)
})
}
}
})
})
}
app.get('/', (req, res) => {
if(req.session.email){
console.log('Session ON')
} else {
console.log('Session OFF')
res.redirect('/login')
}
res.json({
message: "teste"
})
})
app.get('/login', (req, res) => {
console.log("GET NO LOGIN")
})
app.post('/login',[
body("emailInput").isEmail().normalizeEmail().withMessage('Este não é um email válido'),
body("senhaInput").isLength({min: 8, max: 16}).trim().withMessage('Sua senha precisa ter entre 8 e 16 caracteres')
], (req, res, next) => {
console.log('REQUISIÇÂO AO SERVIDOR CHEGOU')
const senha = req.body.senhaInput
const email = req.body.emailInput
const errors = validationResult(req);
if(!errors.isEmpty()){
return res.json({errors: errors.array()} )
}
console.log(req.body)
loginUser(email, senha, result => {
if(result){
req.session.email = "teste"
}
res.json({
email: email,
isLogado: result
});
})
})
app.listen(8080, () => {
console.log("Servidor escutando na porta 8080...")
});
我正在使用 nodemon 运行,所以我收到了这个:“[nodemon] 由于更改而重新启动... [nodemon] 正在启动node index.js
Servidor escutando na porta 8080 ...”
当我尝试访问“http://localhost:8080/”时,我会收到一个永恒的加载!
你可以帮助我?对不起,我来自巴西,我的英语不是很好!
解决方案
我重新启动计算机,错误停止了。
推荐阅读
- atk4 - 在包含其他表字段的表单中添加 addCondition()
- flutter - 堆栈内的水平列表视图:水平视口被赋予无限宽度
- java - 如何为列表适配器中的按钮创建 OnClickListener,这将允许我设置 EditText 视图的可见性
- laravel - 尝试 hasFile() 函数时出现错误“调用未定义的方法”
- java - 审核API请求/接口方法的机制/技术
- python - 使用 LDA 模型运行 Sagemaker 批量转换时出错
- powershell - Robocopy 属性错误未提取所有文件?
- delphi - 为什么“分配给 X 的 H2077 值从未使用过”不会出现在字符串变量中?
- vue.js - 将图像添加到 Vue Select 下拉菜单?
- docker - 仅将 Docker Swarm Manager 节点公开到 Internet。隐藏工作人员(无公共 IP)