Tag: serverside javascript

如何在NodeJS中构build模型和视图?

我正在编写一个基于NodeJS的服务器端和客户端JavaScript应用程序。 我有控制器,模型,视图和演示者。 我面临的问题是,代码的某些部分只需要服务器端,一些客户端和一些两者。 例如,控制器是纯服务器端的东西,所以他们不应该在客户端。 另一方面,演示者纯粹是客户端的东西,所以应该在客户端提供。 看看我目前糟糕的结构: project\ project\public\index.js project\public\images\ project\protected\controllers\ project\protected\models\ project\protected\views\ project\protected\presenters\ 我面对的问题是,公用文件夹是文档根,并且保护在文档根之外。 我需要能够在客户端和服务器端使用视图。 所以,我的意见不能被保护。 这同样适用于模型和其他东西吨。 我也需要能够访问他们的客户端。 我开始认为除了一些configuration文件之外,我必须将整个结构放在文档根目录下。 这是我应该做的吗? 这种方法有什么问题吗? 我在问,因为大多数Web框架(Django,Zend Framework)以框架在文档根之外的方式工作。

Netscape Enterprise Server和服务器端JavaScript(SSJS)与Node.js

服务器端JavaScript(SSJS)的Netscape Enterprise Server实现与node.js实现之间的主要区别是什么? 为什么Netscape的实现没有获得牵引,而node.js似乎更受欢迎?

服务器端的JavaScript – 一般

可能重复: 什么是node.js? Node.js的用法 – 它提供了什么障碍? 什么是使用服务器端JavaScript的正确scheme? 像node.js它解决了什么样的问题?

使用node.js改造现有的Backbone应用程序以进行服务器端渲染?

我有一个Web应用程序,其目前的结构是在浏览器中使用backbone.js和客户端模板来呈现所有内容,从Python提供的JSON API中提取所有dynamic内容。 有些应用程序是足够的,我不介意把它提供给谷歌和支持非JS客户端,所以我一直在考虑转移到第一个请求被一个Node应用程序处理的架构,第一个页面,然后渲染,之后,如果JS启用了后续请求,Backbone就会接pipe客户端。 我意识到一些努力(像开发种子的骨头 )来实施这种策略,但他们似乎期待着一个应用程序,预先计划好了它们的用途,无论好坏,我的不是。 我正在寻找工具,库等,这将使这个过渡更容易。 如果在某些地区为非JS客户提供稍微不同的体验是可行的,则可以获得奖励积分。 思考?

JSTUN vs PJNATH

我将在JavaScript中编写自己的STUN实现(服务器端使用NodeJS),并且正在寻找一个库来实现我的代码。 我find了JSTUN和PJNATH,并且都似乎是由stackoverflow的成员支持。 我下载了源代码,PJNATH约为15000行代码,而JSTUN不到3000。 一个图书馆比另一个图书馆更完整吗? 我需要服务器和客户端组件,我希望尽可能完成function,因为我不想实现TURN(太硬件密集型)。 有一个更好的图书馆,我应该看看? 最终,我想要完全ICE complient解决scheme,但STUN现在已经足够了。

React / Redux同构/服务器端渲染和媒体查询

我开始创build一个基于Node的同构React / Redux应用程序。 该项目的一个要求是基于“移动”和“桌面”视图的“adapative”渲染特定组件。 我已经实现了Redux动作和Reducer来存储有关用户视图的屏幕信息(基于媒体查询 – “小”,“中”,“大”)的状态。 在调整状态/商店得到更新。 默认状态是“小”。 const defaultState = { isMobile: true, isTablet: false, isDesktop: false, sizes: { small: true, medium: false, large: false, huge: false, }, }; 在需要根据屏幕尺寸在两个不同版本中呈现“自适应”的组件中,我简单地做一个: 如果(小)返回变化1 如果(中)返回变化2 所有的工作。 现在我面临两个问题: 我的应用程序是同构的,这意味着标记也呈现服务器端。 服务器不知道用户的浏览器和媒体查询。 所以,因为我的默认状态是“小”,服务器将始终呈现“variation1”。 节点服务器是该站点的入口点。 它看起来像渲染需要“延迟”(中间件?),服务器需要从React应用程序获取“传递”之前从客户端获取一些有关浏览器宽度的信息。 任何想法如何解决这个问题? 因为渲染是基于状态的,所以即使在浏览器大小是“桌面”的情况下,在加载“变化1”之后几秒钟总是可以看到(闪烁)。 这是因为在使用当前屏幕宽度更新状态之前,JS检测需要几毫秒的时间。 我认为这与上面的问题和默认状态一起玩。 我找不到任何解决scheme1,但我想必须有一些同构和响应/自适应。

有除了V8以外的JavaScript引擎的node.js平台的任何端口或替代实现?

node.js是一个基于Google V8 JavaScript引擎的开源服务器端JavaScript 平台 。 现在已经快速普及和重要了几年了。 现在node.js只是一个平台。 从本质上讲,使用的JavaScript引擎只是一个实现细节,任何JS引擎都可以被使用,甚至是一个抽象的工作与各种JS引擎。 Joyent可能select了V8,因为它是开源的,拥有良好的许可条款,并且通常是最快的JS引擎(但是我相信它有时被其他引擎取代)。 鉴于可能被称为“开放标准”的多种不同但兼容的实现有多种不同但相容的实现,比如JS引擎,Web浏览器,编程语言编译器等等; 当然,像node.js这样的服务器端平台的多个实现也是很好的 例如,在几乎所有操作系统和硬件上都可以运行JavaScript引擎,但V8只存在于其中的几个。 事实certificate,微软正在推动Windows Azure的node.js,尽pipe它依赖于一个主要的竞争对手的工作,即使他们有自己的JS引擎,可以与V8竞争的速度。 如果有任何这样的端口已经开始,我将非常感兴趣的是,跟进他们的进度,以监测node.js是否可能成为开放标准。 •我意识到节点并不像JS和浏览器那样标准化,并且它正在迅速发展,但从来没有阻止任何人抓痒。 •如果有多个端口,我不会征求您认为哪个更好或哪些更受欢迎的意见,这不是一个民意调查问题。 •我也没有购买node.js实现,我对是否将node.js或类似的东西普遍采用作为平台感兴趣,还是将它留在单个公司的手中。

如何在nodejs javascript中使用nodejs-iconv模块(或其他解决scheme)将字符编码从CP932转换为UTF-8,

我试图将string从CP932(aka Windows-31J)转换为javascript中的utf8。 基本上,我正在爬取一个忽略请求头中的utf-8请求的站点,并返回cp932编码的文本(即使html元标记表示页面是shift_jis)。 无论如何,我有整个页面存储在一个名为“HTML”的stringvariables。 从那里我试图将其转换为UTF8使用此代码: var Iconv = require('iconv').Iconv; var conv = new Iconv('CP932', 'UTF-8//TRANSLIT//IGNORE'); var myBuffer = new Buffer(html.length * 3); myBuffer.write(html, 0, 'utf8') var utf8html = (conv.convert(myBuffer)).toString('utf8'); 结果不是它应该是什么。 例如,string“感觉·情报”(感兴趣的信息)出来了:“这是一个真实的故事,ソスRソス〜(ソスソスソスEソスソスソスソス)“ 如果我删除// TRANSLIT // IGNORE(这应该导致它返回相似字符的缺less字符,并失败,省略非转码字符),我得到这个错误:错误:EILSEQ,非法字符序列。 我愿意使用任何可以在nodejs中实现的解决scheme,但是我的search结果并没有在nodejs-iconv模块之外获得许多选项。 nodejs-iconv ref: https : //github.com/bnoordhuis/node-iconv 谢谢! 编辑24.06.2011:我已经在Java中实现了一个解决scheme。 不过,如果有人可以解决这个问题,我仍然对这个问题的JavaScript解决scheme感兴趣。

用于处理node.js的Prerequesite知识

Node.js现在似乎在书呆子博客中已经有很多专栏了,而且有一点功课,不难理解为什么。 在深入学习节点之前知道什么是好的? 我假设使用Javascript,但任何其他技术或概念,将有助于? 从本地testing到生产服务器,我需要知道什么?

node.js:从另一个模块访问本地variables

我的问题 我正在编写一个名为a的node模块,它require() sa模块b (由陌生人编写)。 不幸的是, a不仅需要访问公共成员,还需要访问在模块范围内声明的局部variables。 // a var b = require('b'); console.log(b.public); console.log(b.private); // undefined // b var c = require('c'); var stdin = process.stdin; exports.public = true; var private = true; 我的解决scheme // a var b = require('b'); var srcPath = require.resolve('b'); console.log(b.public); fs.readFile(srcPath, 'utf-8', function (err, src) { var box = {}; […]