我试图学习node.js并且遇到了一些障碍.
我的问题是我似乎无法将外部css和js文件加载到html文件中.
GET http://localhost:8080/css/style.css 404 (Not Found)
GET http://localhost:8080/js/script.css 404 (Not Found)
Run Code Online (Sandbox Code Playgroud)
(这是所有文件都在应用程序的根目录中)
我被告知有点模仿以下应用程序结构,为公共目录添加一个路由,以允许Web服务器提供外部文件.
我的app结构是这样的
domain.com
app/
webserver.js
public/
chatclient.html
js/
script.js
css/
style.css
Run Code Online (Sandbox Code Playgroud)
所以我的webserver.js脚本位于app的根目录中,我想要访问的所有内容都是'public'.
我还看到了这个示例,它使用path.extname()来获取位于路径中的任何文件扩展名.(参见最后一个代码块).
所以我试图结合新的站点结构和这个path.extname()示例,让webserver允许访问我的公共目录中的任何文件,这样我就可以渲染html文件,它引用了外部的js和css文件.
我的webserver.js看起来像这样.
var http = require('http')
, url = require('url')
, fs = require('fs')
, path = require('path')
, server;
server = http.createServer(function(req,res){
var myPath = url.parse(req.url).pathname;
switch(myPath){
case '/public':
// get the extensions of the files inside this dir (.html, .js, .css)
var extname = mypath.extname(path);
switch (extname) {
// get …Run Code Online (Sandbox Code Playgroud) 我试图想出一个简单的方法来在脚本中要求一个html模板,然后从CLI运行browserify.
说我想抓住一个模板并将其附加到身体上.
//index.js
var template = require('./template.html');
document.body.appendChild(template);
Run Code Online (Sandbox Code Playgroud)
和
<!-- template.html -->
<p>Woooo!</p>
Run Code Online (Sandbox Code Playgroud)
然后使用CLI将其全部包装在Browserify中.
browserify index.js > build.js
在引用的浏览器中加载index.html模板时,build.js我在控制台中收到此错误:
Uncaught SyntaxError: Unexpected token <
Run Code Online (Sandbox Code Playgroud)
这是参考
....
},{}],3:[function(require,module,exports){
<div class="slide">
<h2 data-slide-title></h2>
<div data-slide-copy></div>
</div>
},{}]},{},[1])
Run Code Online (Sandbox Code Playgroud) 在我当前的 Browserify 项目中,我需要能够循环遍历特定目录的文件夹并从每个文件夹中获取一个 json 文件。所以我需要某种fs模块。
您是否可以推荐任何可以与 Browserify 配合使用的特定模块,并且让我可以使用readdirsync/readdir或其他方法来读取另一个目录的内容?
显然我无法使用普通的 nodejsfs模块,并且我查看了brfs但这只能让我访问readFile.
我想做这样的事情:
// app.js
getFiles = require('./getFiles.js')():
Run Code Online (Sandbox Code Playgroud)
和
// getFiles.js
module.exports = function(){
var fs = require('some_module_system');
var folders = fs.readdir('../path/to/dir', function(err, contents){
console.log(contents);
});
}
Run Code Online (Sandbox Code Playgroud)
并将其全部包裹起来
browserify app.js > build.js
Run Code Online (Sandbox Code Playgroud) 我希望能够将列表拆分为多个列表.我假设这需要存储在tuple- 虽然不完全确定.
说我有这8人组
users =
["Steve", "Sally", "Barry", "Emma", "John", "Gustav", "Ankaran", "Gilly"]
Run Code Online (Sandbox Code Playgroud)
我想将它们分成特定数量的组.例如,2人,3人或4人的团体.
-- desired result
( ["Steve", "Sally", "Barry"]
, ["Emma", "John", "Gustav"]
, ["Ankaran", "Gilly"]
)
Run Code Online (Sandbox Code Playgroud)
这个问题的第2部分是,你将如何迭代并呈现各种长度的元组的结果?
我正在玩这个例子,使用tuple-map, 但它似乎只期望一个具有2个值的元组.
import Html exposing (..)
import List
data = (
["Steve", "Sally", "Barry"]
, ["Emma", "John", "Gustav"]
, ["Ankaran", "Gilly"]
)
renderLI value =
li [] [ text value ]
renderUL list =
ul [] (List.map renderLI list)
main =
div [] (map renderUL data)
-- …Run Code Online (Sandbox Code Playgroud) 我想知道如何解码榆树中的Http.Error并将其数据存储在我的模型中.
我知道错误响应将返回此结构.
{
error: "Some error message",
ok: false
}
Run Code Online (Sandbox Code Playgroud)
这是我的模型和我的Http请求
type alias Model =
{ url = String
, result : String
, errorMessage : String
, error : Bool
}
model : Model
model =
{ url = ""
, result = ""
, errorMessage = ""
, error = False
}
-- make the request
makeRequest : String -> Cmd Msg
makeRequest url =
Task.perform FetchFail FetchSucceed (Http.get decodeTitle url)
-- decode the success response
decodeTitle : …Run Code Online (Sandbox Code Playgroud) 我试图创建一个NodeJS TCP服务器,它将读取客户端输入,然后相应地采取行动.
我想知道如何读取数据,因此我可以设置条件来执行过程.
var net = require('net');
var server = net.createServer(function (socket) {
socket.on('data', function(data) {
buf = new Buffer(256);
len = buf.write(data.toString());
if (buf.toString('utf8', 0, len) === "test"){
console.log("you typed test");
}
console.log(len + " bytes: " + buf.toString('utf8', 0, len));
});
socket.write("Connected to server.\r\n");
});
server.listen(8080, "127.0.0.1");
Run Code Online (Sandbox Code Playgroud)
我正在输出此处输入的值:
console.log(len + " bytes: " + buf.toString('utf8', 0, len));
但是当我在客户端终端窗口中实际键入'test'时,我在此日志上方的if语句与值'test'不匹配.
任何帮助表示赞赏
-克里斯