我最近一直在寻找,找到一个在nodeJS和PHP之间进行通信的好方法.这是一个想法:nodeJS仍然很新,只用它来开发一个完整的应用程序可能有点棘手.此外,您可能只需要项目的一个模块,如实时通知,聊天,......您希望使用PHP管理所有其他内容,因为它可能对您来说更容易(并且您可以利用现有的框架,如CodeIgniter或Symfony).
我想有一个简单的解决方案; 我不想使用cURL或第三台服务器在Apache和Node服务器之间进行通信.我想要的是能够在简单的Javascript,客户端从节点捕获事件.
我没有找到任何完整的答案,大部分时间客户端都是由节点服务器运行的,因此在我的情况下不适用.所以我抓住了所有可能的主题,最后找到了答案; 我会尝试分享这个,并指出一点都清楚.
希望这可以帮助一些人!;)
我正在使用Electron创建一个应用程序,并希望在我的localhost中选择并插入/更新MySQL数据库中的某些表,如何与数据库建立连接?
PS:我对Electron很新
谢谢您的帮助.
我有一个传统的apache服务器提供php文件,以及一个nodeJS服务器(带有socket.io,但没有表达/连接)用于PHP网站上的实时事件管理.我有时需要对连接到nodeJS服务器的客户端进行身份验证,但是当用户重新加载页面时,此身份验证会丢失,因为它还会重新加载socket.io客户端(我将套接字ID存储在服务器上,每次刷新时都会丢失)
问题是:有没有办法在socket.io中保持连接活动,或者是一种链接apache PHP会话和nodeJS服务器的方法?或者也许是一种使用cookie保持此身份验证的方法(知道我必须存储敏感数据,如用户密码和密钥)?
这是我第一次使用 Node Webkit。此时,我已经拥有桌面应用程序的所有静态部分(基于 html、css、js 构建)。
然而,为了使其正常工作,我需要从数据库和/或文件中存储和检索用户输入。
我怎样才能做到这一点,哪个是更好的选择(数据库或文件或两者)?
我还想知道 nw.js 支持哪些数据库引擎,以及是否有任何 GUI 工具来设置该数据库。

任何帮助是极大的赞赏。
我是Web开发的初学者。最近,我一直在一个完全基于PHP和JS / jQuery的实时聊天网站上工作(我没有使用任何框架)。目前,我的设置只是简单的AJAX轮询,显然不如我希望的那样好。我的数据库是MYSQL数据库。
我已经阅读了有关websockets的信息,我的新初始计划是使用Socket.io创建一个NodeJS服务器来处理消息(如何集成nodeJS + Socket.IO和PHP?),并且我考虑将这些消息存储在MySQL数据库中(使用Node.js的MySQL)。
这是我目前所拥有的(不多,我想在实际取得进展之前阐明如何进行发展)。这是我的测试设置,实际聊天中使用的HTML显然有所不同。
Node.js服务器:
// NODE
var socket = require( 'socket.io' );
var express = require( 'express' );
var https = require( 'https' );
var http = require( 'http'); //Old
var fs = require( 'fs' );
var app = express();
//Working HTTPS server
var server = https.createServer({
key: fs.readFileSync('/etc/letsencrypt/live/%site%/privkey.pem'),
cert: fs.readFileSync('/etc/letsencrypt/live/%site%/fullchain.pem')
},app);
// var server = https.createServer( app ); Won't work cause no cert.
var io = socket.listen( server );
console.log("Server Started"); …Run Code Online (Sandbox Code Playgroud) 我曾想过使用Wordpress作为CMS后端,因为很多人都知道它并且很容易使用,然后使用Node.JS作为前端.你现在可能在想,为什么我想首先做到这一点,有什么好处?
我想使用websockets和Node.JS的精彩Socket.io库提供了漂亮的跨浏览器websockets支持.基本上我希望用户来到一个站点,创建一个websocket,然后将内容作为JSON异步地提供给前端,然后在前端解码所有内容都不需要刷新页面.
实际上,我正在使Wordpress成为一个实时CMS.您访问某个站点,但是您单击的每个链接都将该页面作为JSON提取并通过websocket返回以保存多个请求,当然还有页面大小.
我如何让Node.JS与MySQL数据库对话,提取信息然后显示它?任何教程,资源和其他有用的提示将不胜感激.我的一些同事也想知道同样的事情,所以我认为答案对每个人都有很大的帮助.
我是一名PHP程序员,目前与WP,CI,OC合作。
我绝对是node.js的初学者,想逐步了解如何将MySql和WAMP / XAMPP连接起来。
如果我要进行直播,那么直播服务器设置将是什么。
请逐步告诉我。
所以,我对整个后端世界都很陌生,我现在用node.js编码.我有一个项目,我必须存储具有几个字段的用户.但我不知道如何使用节点连接到数据库并进行查询.
而且,我有WAMP堆栈,因为我曾经编码PHP(非常小),我可以将它的MySQL服务器用于node.js吗?或者我是否需要访问MySQL站点,下载并安装它?
我正在尝试进行远程网格使用的查询,因此我将不得不在每个字段上处理sort(asc,desc).
以下是架构:
var customerSchema = new mongoose.Schema({
status: {type: mongoose.Schema.Types.ObjectId, ref: 'Status'},
contact: {type: mongoose.Schema.Types.ObjectId, ref: 'Contact'}
}, { collection: 'Customer' });
customerSchema.virtual('contactName').get(function () {
if (this.contact && this.contact.get) {
return this.contact.get('firstName') + ' ' + this.contact.get('lastName');
}
return '';
});
customerSchema.virtual('statusName').get(function () {
if (this.status && this.status.get) {
return this.status.get('name');
}
return '';
});
customerSchema.set('toJSON', { virtuals: true });
customerSchema.set('toObject', { virtuals: true });
mongoose.model('Customer', customerSchema);
// STATUS
var statusSchema = new mongoose.Schema({}, { collection: 'Status' });
mongoose.model('Status', statusSchema); …Run Code Online (Sandbox Code Playgroud) 每次运行我的showData.js脚本时都会调用它
var pool = mysql.createPool({
Run Code Online (Sandbox Code Playgroud)
有没有办法在node.js服务器启动时创建连接池?
我已经尝试将createPool添加到server.js但是当我调用时,我似乎无法从我的showData.js脚本中访问该对象
pool.getConnection(function(err,connection){
Run Code Online (Sandbox Code Playgroud)
是否有必要在node.js服务器启动时启动连接池?
即使在调用connection.release并且脚本关闭后,mysql连接池是否仍然存在?
编辑 @Marco,我得到了ReferenceError:池没有定义.我知道问题是我没有将池拉入showData.js.根据node.js,可以多次加载模块.
来自https://nodejs.org/api/modules.html
高速缓存
模块在第一次加载后进行缓存.这意味着(除其他外)每次调用require('foo')将获得完全相同的返回对象,如果它将解析为同一个文件.
多次调用require('foo')可能不会导致模块代码多次执行.这是一个重要的特征.有了它,就可以返回"部分完成"的对象,从而允许加载传递依赖,即使它们会导致循环.
如果要让模块多次执行代码,则导出一个函数,然后调用该函数.
这是我最新的设置:
LIB/dbpool.js
var mysql = require('mysql');
var pool = mysql.createPool({
connectionLimit : 10,
host : 'someco.com',
user : 'pinco',
password : 'pallino'
});
module.exports = pool;
Run Code Online (Sandbox Code Playgroud)
server.js
const pool = require('./lib/dbpool');
Run Code Online (Sandbox Code Playgroud)
showData.js
'use strict';
module.exports = router => {
router.route('/show').post((req, res) => {
pool.query('SELECT * FROM db.users', function(err, rows, fields) {
Run Code Online (Sandbox Code Playgroud)
我是否需要server.js和showData.js中的以下行?
const pool = require('./lib/dbpool');
Run Code Online (Sandbox Code Playgroud)