如果我在Heroku上运行Node应用程序,它会创建一个服务器并侦听端口80.我的网站如何知道与我的node.js应用程序中的代码进行交互?
基本上,我试图将使用Ajax在客户端创建的对象发送到服务器端。我的node.js应用程序如何监听这些数据,特别是在生产中?
更多信息:
所以我有一个静态的网站视图,通过共享主机上传html和css。我正在尝试使用Node.js通过Stripe实现一个简单的支付系统。所以我只有一台Node服务器和一个共享主机供我的网站使用。我的问题是如何在不通过Node提供.html文件的情况下连接两者?
答案 0 :(得分:1)
目前还不清楚你在设置node.js服务器方面的确切位置,因为网络上的许多示例都解释了你要求的所有内容。所以,既然我不知道你遇到了什么问题,我会从概念上解释你从网站上调查Ajax的步骤:
仅供参考,如果您认为与node.js服务器有关的唯一方法是使用Stripe checkout,那么您可以在您的网页中编写Javascript,直接与Strip服务进行通信,而无需拥有自己的节点.js服务器。这取决于你要做的事情的细节。这里有一些剥离结帐详情:https://stripe.com/docs/checkout
答案 1 :(得分:0)
因为你申报了你的路线(假设你正在使用像Express这样的东西,或者你已经制作了自己的香草http服务器)所以当你访问路线时它知道要执行你绑定的任何功能这也是
e.g。 app.get('/', someController);
知道每当有人访问/
时,都会someController
执行。
Node通过你自己的程序直接运行网站并知道这些事情
如果我误解了,请告诉我
回复评论:
如果您上传view
个文件,我不太了解您的问题,例如您home.ejs/html/jade
用于其他服务器的任何内容,然后将app
上传到另一台服务器,它将无法正常工作,您将找不到404或其他内容。我假设您是来自PHP或者您拥有PHP文件的东西,并且所有内容都合并为您将html/php
放在一个文件中,然后当您访问localhost / home.php时它就可以了。节点不同你有app
通过你的服务器端逻辑你告诉它要调用哪个视图,你的客户端东西(比如你的视图和css / js以及什么不是)与你的服务器端逻辑完全分开,通过你的控制器,你告诉什么函数调用什么视图,例如
(假设您正在使用快递) 你有这个作为控制器:
app.get('/', function(req, res) {
res.render('home');
});
然后在你的app.js
逻辑中:
// Your Route
app.use('/', homeController)
然后在views
你可能有
home.html/jade/ejs
(扩展取决于您正在使用的模板)
现在当有人访问/
时,路线会看到这个并且没问题我需要拨打homeController
,这样就可以了,而且很开心,然后获取内容的功能,哦,它想要渲染一个视图文件,然后表达'函数res.render
将映射到views
文件夹,直到找到类似于您所请求的内容,在这种情况下:home.html
,然后呈现文件并将响应发回对客户来说,
所以简而言之
Request > Route > Controller > Function Body > Does whatever you've programmed from there
简而言之,您的客户端和服务器逻辑完全相互独立
与PHP
或其他内容一样,您拥有自己的php文件
<?php
<html>
</html>
?> (i think thats how it goes I haven't done php in a looooonngg time)
然后你运行apache或者其他什么,apache将神奇地路由到请求的.php
文件,编译并呈现它
我希望我的答案好一点