gpt4 book ai didi

javascript - Node.js 不从浏览器执行 DB 函数

转载 作者:行者123 更新时间:2023-12-03 12:39:16 24 4
gpt4 key购买 nike

我已经通过 proxy mod 安装了 Node.js 服务器和 Apache 服务器,并且启动正常。当我从控制台调用 server.js 文件时,例如: node/var/www/project/node/server.js 我收到正在运行的通知消息:“ok,服务器正在运行“

当我转到浏览器并指向 server.js http://example.com/node/ 时,我得到状态 200 并且它可以工作。

问题是,只有当我从控制台启动 server.js 时才会执行函数 test ,但是当我从浏览器或通过 AJAX 调用请求 server.js 时,函数 test 才会执行 未执行。我通过数据库条目注意到这一点。

非常感谢您的反馈。我的代码如下:

var http=require('http');
var mysql = require('mysql');
var util = require('util');
var url = require('url');

var connection = mysql.createConnection({
host : 'localhost',
user : 'xxx',
password : 'xxx',
database : 'db_test', //mysql database to work with (optional)
});
connection.connect(); //connect to mysql

var server=http.createServer(function(req,res){
res.end('Connected');
});


server.on('listening',function(){
console.log('ok, server is running');
});

server.listen(9000);



function test(){
var s = new Date().getTime();
connection.query('INSERT INTO table_test.emails (email) VALUES ("'+s+'")',function(err, result) {});
}

test();

谢谢。

最佳答案

当您使用 node/var/www/project/node/server.js 启动服务器时,会运行 app.js 中的代码(整个文件为 < em>不为每个请求运行,与 PHP 不同)。您告诉 Node 监听端口 9000,并在收到请求时执行 createServer 回调中的任何内容。因此,您需要将对 test() 的调用放入 createServer 回调中才能使其正常工作。:

var server=http.createServer(function(req,res){
test();
res.end('Connected');
});

关于javascript - Node.js 不从浏览器执行 DB 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23588021/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com