2013-05-10 122 views
0

是否有可能的.html文件中运行这个JavaScript代码:我可以在HTML文档中运行Nodejs JavaScript脚本吗?

<script> 
    function DBConnect() { 
     var mysql = require('mysql'); 
     var mydb = mysql.createConnection({ 
      host: 'localhost', 
      user: 'root', 
      password: 'admin123', 
      database: 'users' 
     }); 

     var username = user_name.value; 
     mydb.connect(); 

     var query = ('select passwd from peer where username=' + username); 

     console.log(query); 

     connection.end(function(err) { 
      // The connection is terminated now 
     }); 
    } 
</script> 

因为当我尝试总是有一个错误:未定义的“规定”, 或者我怎么能叫其他FE这个功能: db.js? 我已经脚本server.js,这是从Node.js运行,你认为上面的代码应该在这里运行?

+4

您需要了解**服务器端**代码和**客户端**代码之间的区别。 – SLaks 2013-05-10 16:43:41

+13

是的,继续并在您的html文档中粘贴一些javascript,在您的服务器上公开主机,用户,密码和数据库名称。会出现什么问题? – 2013-05-10 16:44:07

+0

可能http://stackoverflow.com/questions/9901082/what-is-this-javascript-require – Xotic750 2013-05-10 16:44:38

回答

5

忽略所有提示browserify的人。如果您对客户端 - 服务器体系结构有基本的了解,并且因此对browserify的局限性有一个直觉,那将是有意义的。您的问题的答案是

Node.js代码在服务器上运行。在你的代码中,你正在做的事情不能在客户端上完成。在尝试编写处理敏感信息的代码之前,您应该理解为什么。

+0

谢谢,那么如何运行我的代码,我的意思是如何发送一些参数到server.js并返回? – Patrik18 2013-05-10 17:03:34

+0

@ user1726810:您需要使用AJAX或WebSockets。 – SLaks 2013-05-10 17:04:26

+2

@ user1726810我个人建议上大学,但很多开发者已经成功地在没有学习的情况下学习了。当你不明白为什么你不应该把数据库管理证书放入JavaScript中时,我无法负责任地给你任何更具体的帮助。 (提示:查看页面源...) – djechlin 2013-05-10 17:07:38

2

使用browserify,您可以在浏览器上运行一些Node.js模块,但一个执行如此重的I/O无法在您的浏览器中运行。

所以不,你不能简单地把这个Node.js代码,并尝试在浏览器中运行它。您必须设计一个适当的客户端 - 服务器应用程序,服务器将访问数据库。

,而您会得到很多教程的解决方案,例如可以是

  • 为了让你的浏览器的JavaScript代码的问题有些Ajax请求
  • 为了让您的服务器通过查询数据库回答这些请求和发送有些数据在JSON的响应中。
  • 使浏览器使用此JSON更改HTML。

您可以通过谷歌搜索“JSON node.js的阿贾克斯MySQL的”开始,但你必须面对你很多的研究。

0

您可能试图在浏览器中执行Node.js JavaScript代码,并且require关键字无法识别。

要导入的JavaScript文件在浏览器中,你应该使用这样的事情:

<script src="path/to/your/JavaScript/file"></script> 
+5

这里'require()'是他的问题中最少的。 – JJJ 2013-05-10 16:47:57

+0

谢谢,然后我如何发送一些参数给js文件? – Patrik18 2013-05-10 16:58:19

+1

@ user1726810不需要它。该文件可以像任何其他脚本一样访问所有全局变量。正如其他人所建议的,在开始使用Web脚本之前,您需要先“学习”节点 - 我建议您抓住一本好的以Web开发为中心的JavaScript书。 – JJJ 2013-05-10 17:02:32

2

即使有可能直接从HTML连接到数据库MySQL,这是一个坏主意。如果您将数据库凭证包含在HTML中,那么任何有权访问该网页的人都可以访问您的数据库并执行他们想要的任何操作。这是一个坏主意。

相关问题