{"id":3533,"date":"2014-11-25T18:26:10","date_gmt":"2014-11-25T09:26:10","guid":{"rendered":"http:\/\/www.lancard.com\/blog\/?p=3533"},"modified":"2025-03-12T11:28:22","modified_gmt":"2025-03-12T02:28:22","slug":"node-js%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%83%81%e3%83%a3%e3%83%83%e3%83%88","status":"publish","type":"post","link":"https:\/\/www.lancard.com\/blog\/2014\/11\/25\/node-js%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%83%81%e3%83%a3%e3%83%83%e3%83%88\/","title":{"rendered":"Node.js\u3092\u4f7f\u3063\u3066\u30c1\u30e3\u30c3\u30c8"},"content":{"rendered":"<p>Node.js\u3092\u4f7f\u3063\u3066Socket.io\u3092\u7528\u3044\u305f\u30c1\u30e3\u30c3\u30c8\u30eb\u30fc\u30e0\u3092\u4f5c\u6210\u3057\u305f\u3044\u3068\u601d\u3044\u307e\u3059<\/p>\n<p>\u305b\u3063\u304b\u304f\u306a\u306e\u3067\u3001\u524d\u56de\u7d39\u4ecb\u3057\u305fYeoman\u3092\u4f7f\u3063\u3066\u4f5c\u6210<\/p>\n<p><a href=\"https:\/\/github.com\/individual11\/generator-socketio\">generator-socketio<\/a>\u3068\u3044\u3046\u30b8\u30a7\u30cd\u30ec\u30fc\u30bf\u304c\u3042\u308b\u3088\u3046\u306a\u306e\u3067\u30b3\u30ec\u3092\u4f7f\u3044\u307e\u3059\u3002<\/p>\n<p>\u307e\u305a\u306f\u30b8\u30a7\u30cd\u30ec\u30fc\u30bf\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/p>\n<pre lang=\"bash\">\r\nXXXXX:chat XXXXX$ sudo npm install -g generator-socketio\r\nPassword:\r\n<\/pre>\n<p>\u5b9f\u884c\u3059\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u3064\u304f\u3063\u305f\u3089yo\u3067\u5b9f\u884c<\/p>\n<p>\u4eca\u56de\u306fbootstrap\u4f7f\u7528\u3001\u30b9\u30bf\u30a4\u30eb\u30b7\u30fc\u30c8\u306fCSS\u3092\u4f7f\u3046\u3053\u3068\u306b\u3057\u307e\u3059<\/p>\n<pre lang=\"bash\">\r\nXXXXX:workspace XXXXX$ mkdir chat\r\nXXXXX:workspace XXXXX$ cd chat\r\nXXXXX:chat XXXXX$ yo socketio\r\n\r\n     _-----_\r\n    |       |\r\n    |--(o)--|   .--------------------------.\r\n   `---------\u00b4  |    Welcome to Yeoman,    |\r\n    ( _\u00b4U`_ )   |   ladies and gentlemen!  |\r\n    \/___A___\\   '__________________________'\r\n     |  ~  |\r\n   __'.___.'__\r\n \u00b4   `  |\u00b0 \u00b4 Y `\r\n\r\n[?] What do you want to call this project? chat\r\n[?] Write a brief description.\r\n[?] What port number would you like to run on? 1337\r\nchat\r\nto run on port - 1337\r\n[?] Do you want to use Bootstrap? Yes\r\ntrue\r\n[?] In what format would you like the Bootstrap stylesheets? css\r\ncss\r\n   create server.js\r\n   create views\/index.ejs\r\n   create public\/js\/app.js\r\n   create Gruntfile.js\r\n   create package.json\r\n   create bower.json\r\n   create .editorconfig\r\n   create .jshintrc\r\n   create .bowerrc\r\n   create .gitignore\r\n\r\n~~~\r\n<\/pre>\n<p>\u3042\u3068\u306fgrunt\u3067\u5b9f\u884c\u3059\u308b\u3060\u3051\u3002\u3042\u30fc\u306a\u3093\u3066\u697d\u3061\u3093\u2026<\/p>\n<pre lang=\"bash\">XXXXX:chat XXXXX$ grunt<\/pre>\n<p><a href=\"http:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/73c3a35ef9653e87b0f2ccecc5652e5a.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/73c3a35ef9653e87b0f2ccecc5652e5a-400x167.png\" alt=\"-\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8 2014-11-24 23.15.25\" width=\"400\" height=\"167\" class=\"alignnone size-medium wp-image-3534\" srcset=\"https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/73c3a35ef9653e87b0f2ccecc5652e5a-400x167.png 400w, https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/73c3a35ef9653e87b0f2ccecc5652e5a-602x252.png 602w, https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/73c3a35ef9653e87b0f2ccecc5652e5a-900x376.png 900w, https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/73c3a35ef9653e87b0f2ccecc5652e5a.png 1376w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/><\/a><\/p>\n<p>\u3042\u30fcbootstrap\u5165\u308c\u3066\u306a\u304b\u3063\u305f<\/p>\n<p>Gruntfile.js\u3092\u78ba\u8a8d\u3057\u305f\u6240\u3001public\/bowser_components\u306bbootstrap\u30d5\u30a1\u30a4\u30eb\u3092<\/p>\n<p>\u5165\u308c\u308b\u3068\u3044\u3044\u307f\u305f\u3044\u3067\u3059\u306d<\/p>\n<pre lang=\"bash\">\r\nXXXXX:chat XXXXX$ vi Gruntfile.js\r\n~~~\r\n    cssmin: {\r\n      combine: {\r\n        files: {\r\n          'public\/css\/core.css': 'public\/bower_components\/bootstrap.css\/css\/bootstrap.css'\r\n~~~\r\n<\/pre>\n<p>public\u306bbower_components\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210\u3057\u3001<a href=\"http:\/\/getbootstrap.com\" title=\"bootstrap\">\u516c\u5f0f\u30b5\u30a4\u30c8<\/a>\u3067DL\u3057\u305fbootstrap\u30d5\u30a1\u30a4\u30eb\u3092\u5165\u308c\u307e\u3059<\/p>\n<pre lang=\"bash\">\r\nXXXXX:public XXXXX$ mkdir bower_components\/\r\nXXXXX:public XXXXX$ mkdir bower_components\/bootstrap.css\/\r\n<\/pre>\n<p><a href=\"http:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/b181740ee0653c42484a68d2c0082bee1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/b181740ee0653c42484a68d2c0082bee1-400x248.png\" alt=\"-\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8 2014-11-24 11.18.45\" width=\"400\" height=\"248\" class=\"alignnone size-medium wp-image-3543\" srcset=\"https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/b181740ee0653c42484a68d2c0082bee1-400x248.png 400w, https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/b181740ee0653c42484a68d2c0082bee1-602x374.png 602w, https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/b181740ee0653c42484a68d2c0082bee1.png 882w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/><\/a><\/p>\n<p>\u3082\u3046\u4e00\u56degrunt\u3067\u5b9f\u884c<\/p>\n<p>\u304a\u304a\u30fc\u3046\u307e\u304f\u884c\u3063\u305f\uff01<\/p>\n<p><a href=\"http:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/39afe1558eb7ba27b740ee0af9630700.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/39afe1558eb7ba27b740ee0af9630700-400x167.png\" alt=\"-\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8 2014-11-24 23.14.16\" width=\"400\" height=\"167\" class=\"alignnone size-medium wp-image-3536\" srcset=\"https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/39afe1558eb7ba27b740ee0af9630700-400x167.png 400w, https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/39afe1558eb7ba27b740ee0af9630700-602x252.png 602w, https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/39afe1558eb7ba27b740ee0af9630700-900x376.png 900w, https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/39afe1558eb7ba27b740ee0af9630700.png 1376w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/><\/a><\/p>\n<p>\u3059\u3067\u306b\u57fa\u672c\u7684\u306a\u30c1\u30e3\u30c3\u30c8\u6a5f\u80fd\u304c\u5165\u3063\u3066\u3044\u308b\u3088\u3046\u3067\u3001<\/p>\n<p>\u3082\u3046\u4e00\u3064\u30d6\u30e9\u30a6\u30b6\u3092\u958b\u3044\u3066\u6587\u7ae0\u306e\u3084\u308a\u3068\u308a\u3092\u3057\u3066\u307f\u308b\u3068\u304d\u3061\u3093\u3068\u52d5\u304d\u307e\u3059<\/p>\n<p>\u305b\u3063\u304b\u304f\u306a\u306e\u3067\u3001\u5c11\u3057\u7de8\u96c6\u3092\u52a0\u3048\u3066\u30c1\u30e3\u30c3\u30c8\u90e8\u5c4b\u3092\u7528\u610f\u3057\u3066\u307f\u308b\u3053\u3068\u306b\u3057\u307e\u3059<\/p>\n<p>TOP(localhost:1337)\u306b\u30a2\u30af\u30bb\u30b9\u3057\u305f\u3089\u30e9\u30f3\u30c0\u30e0\u306a\u30e6\u30fc\u30b6\u540d\u3068\u90e8\u5c4bID\u3092\u4f5c\u6210\u3057\u3001<\/p>\n<p>\u5404\u90e8\u5c4b(localhost:1337\/id)\u306b\u98db\u3076\u30a4\u30e1\u30fc\u30b8\u3067\u3059<\/p>\n<p>\u4ee5\u4e0b\u7de8\u96c6\u5f8c<\/p>\n<p>server.js 38\u884c\u76ee\u301c<\/p>\n<pre lang=\"javascript\">\r\n\/*************************************\r\n\/\/\r\n\/\/ chat app\r\n\/\/\r\n**************************************\/\r\n\r\n\/\/ express magic\r\nvar express = require('express');\r\nvar app = express();\r\nvar server = require('http').createServer(app)\r\nvar io = require('socket.io').listen(server);\r\nvar device  = require('express-device');\r\n\r\nvar runningPortNumber = process.env.PORT;\r\n\r\n\r\napp.configure(function(){\r\n    \/\/ I need to access everything in '\/public' directly\r\n    app.use(express.static(__dirname + '\/public'));\r\n\r\n    \/\/set the view engine\r\n    app.set('view engine', 'ejs');\r\n    app.set('views', __dirname +'\/views');\r\n\r\n    app.use(device.capture());\r\n});\r\n\r\n\r\n\/\/ logs every request\r\napp.use(function(req, res, next){\r\n    \/\/ output every request in the array\r\n    console.log({method:req.method, url: req.url, device: req.device});\r\n\r\n    \/\/ goes onto the next function in line\r\n    next();\r\n});\r\n\r\napp.get(\"\/\", function(req, res){\r\n    res.redirect('\/'+ random_string(12));\r\n});\r\n\r\napp.get('\/:room', function(req, res) {\r\n    res.render('index', {room: req.params.room, name: random_string(5)});\r\n});\r\n\r\nio.sockets.on('connection', function (socket) {\r\n    var room;    \/\/ \u90e8\u5c4bID\r\n    var name;    \/\/ \u30e6\u30fc\u30b6\u540d\r\n\r\n    socket.emit('connected');\r\n\r\n    socket.on('init', function(data) {\r\n        room = data.room;\r\n        name = data.name;\r\n\r\n        socket.join(room);\r\n        socket.broadcast.to(room).emit('blast', {msg:\"<span style=\\\"color:red !important\\\">\"+ name +\" connected<\/span>\"});\r\n    });\r\n\r\n    socket.on('blast', function(data, fn){\r\n\r\n        console.log(data);\r\n        io.sockets.to(room).emit('blast', {msg:data.msg});\r\n\r\n        fn();\/\/call the client back to clear out the field\r\n    });\r\n\r\n    socket.on('disconnect', function() {\r\n        socket.broadcast.to(room).emit('blast', {msg:\"<span style=\\\"color:red !important\\\">\"+ name +\" disconnected<\/span>\"});\r\n        socket.leave(room);\r\n    });\r\n\r\n});\r\n\r\n\r\nserver.listen(runningPortNumber);\r\n\r\n\r\n\/**\r\n * \u30e9\u30f3\u30c0\u30e0\u306a\u6587\u5b57\u5217\u3092\u8fd4\u3059\r\n *\/\r\nfunction random_string(len) {\r\n    var base = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';\r\n    base = base.split('');\r\n    var str = '';\r\n    var count = base.length;\r\n    for(var i=0; i<len; i++) {\r\n        str += base[Math.floor(Math.random() * count)];\r\n    }\r\n    return str;\r\n}\r\n<\/pre>\n<p>index.ejs\u306fname\u3068room\u3092\u8ffd\u52a0\u3057\u305f\u3060\u3051<\/p>\n<p>views\/index.ejs 52\u884c\u76ee\u301c<\/p>\n<pre lang=\"html\">\r\n                    <div class=\"input-group\">\r\n                        <input id=\"blast\" type=\"text\" class=\"form-control\" placeholder=\"send something to everyone\">\r\n                        <input id=\"name\" type=\"hidden\" value=\"<%= name %>\">\r\n                        <input id=\"room\" type=\"hidden\" value=\"<%= room %>\">\r\n                        <span class=\"input-group-btn\">\r\n                            <button id=\"send\" class=\"btn btn-success\" type=\"button\">Send<\/button>\r\n                        <\/span>\r\n                    <\/div><!-- \/input-group -->\r\n<\/pre>\n<p>app.js\u3082\u540c\u3058\u304fname\u3068room\u8ffd\u52a0<\/p>\n<p>public\/js\/app.js 13\u884c\u76ee\u301c<\/p>\n<pre lang=\"javascript\">\r\n\/\/ shortcut for document.ready\r\n$(function(){\r\n    \/\/setup some common vars\r\n    var $blastField = $('#blast'),\r\n        $allPostsTextArea = $('#allPosts'),\r\n        $clearAllPosts = $('#clearAllPosts'),\r\n        $sendBlastButton = $('#send'),\r\n        $nameField = $('#name'),\r\n        $roomField = $('#room');\r\n\r\n    socket.emit('init', {name:$nameField.val(), room:$roomField.val()});\r\n\r\n    $sendBlastButton.click(function(e){\r\n\r\n        var blast = $blastField.val();\r\n        var name  = $nameField.val();\r\n        if(blast.length){\r\n            socket.emit(\"blast\", {msg:name +': '+ blast}, \r\n                function(data){\r\n                    $blastField.val('');\r\n                });\r\n        }\r\n\r\n\r\n    });\r\n<\/pre>\n<p>\u3053\u3053\u307e\u3067\u7de8\u96c6\u3057\u305f\u3089\u3082\u3046\u4e00\u56degrunt\u5b9f\u884c<\/p>\n<p>\u81ea\u52d5\u7684\u306b\u90e8\u5c4b\u3078\u30b8\u30e3\u30f3\u30d7\u3059\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f<\/p>\n<p><a href=\"http:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/51740aa2139532ada270541145774d93.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/51740aa2139532ada270541145774d93-400x167.png\" alt=\"-\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8 2014-11-24 22.32.44\" width=\"400\" height=\"167\" class=\"alignnone size-medium wp-image-3537\" srcset=\"https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/51740aa2139532ada270541145774d93-400x167.png 400w, https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/51740aa2139532ada270541145774d93-602x252.png 602w, https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/51740aa2139532ada270541145774d93-900x376.png 900w, https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/51740aa2139532ada270541145774d93.png 1376w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/><\/a><\/p>\n<p>\u3082\u3046\u4e00\u3064\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u958b\u304d\u3001\u540c\u3058URL\u306b\u30a2\u30af\u30bb\u30b9\u3057\u305f\u5f8c\u3001<\/p>\n<p>\u5143\u306e\u753b\u9762\u3067\u78ba\u8a8d\u3059\u308b\u3068\u90e8\u5c4b\u306b\u5225\u306e\u4eba\u304c\u5165\u5ba4\u3057\u305f\u3053\u3068\u3092\u8868\u793a\u3057\u3066\u304f\u308c\u3066\u3044\u307e\u3059<\/p>\n<p><a href=\"http:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/08d9dea4d931e145b9ba0e7ca37e29fd.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/08d9dea4d931e145b9ba0e7ca37e29fd-400x174.png\" alt=\"-\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8 2014-11-24 23.05.40\" width=\"400\" height=\"174\" class=\"alignnone size-medium wp-image-3538\" srcset=\"https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/08d9dea4d931e145b9ba0e7ca37e29fd-400x174.png 400w, https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/08d9dea4d931e145b9ba0e7ca37e29fd-602x262.png 602w, https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/08d9dea4d931e145b9ba0e7ca37e29fd-900x391.png 900w, https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/08d9dea4d931e145b9ba0e7ca37e29fd.png 1376w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/><\/a><\/p>\n<p>\u3082\u3061\u308d\u3093\u30c1\u30e3\u30c3\u30c8\u3082\u51fa\u6765\u307e\u3059\u3057<\/p>\n<p>\u3064\u3044\u3067\u306b\u9000\u51fa\u3092\u77e5\u3089\u305b\u308b\u6a5f\u80fd\u3082\u3042\u308a\u307e\u3059<\/p>\n<p>\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u6d88\u3059\u3068\"\u25cf\u25cf\u25cf disconnected\"\u3068\u8868\u793a\u3055\u308c\u308b\u3053\u3068\u304c\u78ba\u8a8d\u3067\u304d\u307e\u3059<\/p>\n<p><a href=\"http:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/3b2329f36413c34137878111ca8cd2bb.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/3b2329f36413c34137878111ca8cd2bb-400x167.png\" alt=\"-\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8 2014-11-24 23.10.16\" width=\"400\" height=\"167\" class=\"alignnone size-medium wp-image-3539\" srcset=\"https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/3b2329f36413c34137878111ca8cd2bb-400x167.png 400w, https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/3b2329f36413c34137878111ca8cd2bb-602x252.png 602w, https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/3b2329f36413c34137878111ca8cd2bb-900x376.png 900w, https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/11\/3b2329f36413c34137878111ca8cd2bb.png 1376w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/><\/a><\/p>\n<p>\u4ee5\u4e0a\u3002\u3089\u304f\u3061\u3093\u3002<\/p>\n<a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-facebook nolightbox\" data-provider=\"facebook\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Facebook\" href=\"https:\/\/www.facebook.com\/sharer.php?u=https%3A%2F%2Fwww.lancard.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F3533&#038;t=Node.js%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%83%81%E3%83%A3%E3%83%83%E3%83%88&#038;s=100&#038;p&#091;url&#093;=https%3A%2F%2Fwww.lancard.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F3533&#038;p&#091;images&#093;&#091;0&#093;=http%3A%2F%2Fwww.lancard.com%2Fblog%2Fwp-content%2Fuploads%2F2014%2F11%2F73c3a35ef9653e87b0f2ccecc5652e5a-400x167.png&#038;p&#091;title&#093;=Node.js%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%83%81%E3%83%A3%E3%83%83%E3%83%88\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"Facebook\" title=\"Share on Facebook\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/www.lancard.com\/blog\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/facebook.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-twitter nolightbox\" data-provider=\"twitter\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Twitter\" href=\"http:\/\/twitter.com\/share?url=https%3A%2F%2Fwww.lancard.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F3533&#038;text=Node.js%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%83%81%E3%83%A3%E3%83%83%E3%83%88\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"twitter\" title=\"Share on Twitter\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/www.lancard.com\/blog\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/twitter.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-linkedin nolightbox\" data-provider=\"linkedin\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Linkedin\" href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&#038;url=https%3A%2F%2Fwww.lancard.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F3533&#038;title=Node.js%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%83%81%E3%83%A3%E3%83%83%E3%83%88\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"linkedin\" title=\"Share on Linkedin\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/www.lancard.com\/blog\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/linkedin.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-tumblr nolightbox\" data-provider=\"tumblr\" target=\"_blank\" rel=\"nofollow\" title=\"Share on tumblr\" href=\"https:\/\/tumblr.com\/share?s=&#038;v=3&#038;t=Node.js%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%83%81%E3%83%A3%E3%83%83%E3%83%88&#038;u=https%3A%2F%2Fwww.lancard.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F3533\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"tumblr\" title=\"Share on tumblr\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/www.lancard.com\/blog\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/tumblr.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-mail nolightbox\" data-provider=\"mail\" rel=\"nofollow\" title=\"Share by email\" href=\"mailto:?subject=Node.js%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%83%81%E3%83%A3%E3%83%83%E3%83%88&#038;body=%E3%82%B7%E3%82%A7%E3%82%A2%E3%81%99%E3%82%8B%EF%BC%9A:%20https%3A%2F%2Fwww.lancard.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F3533\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"mail\" title=\"Share by email\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/www.lancard.com\/blog\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/mail.png\" \/><\/a>","protected":false},"excerpt":{"rendered":"<p>Node.js\u3092\u4f7f\u3063\u3066Socket.io\u3092\u7528\u3044\u305f\u30c1\u30e3\u30c3\u30c8\u30eb\u30fc\u30e0\u3092\u4f5c\u6210\u3057\u305f\u3044\u3068\u601d\u3044\u307e\u3059 \u305b\u3063\u304b\u304f\u306a\u306e\u3067\u3001\u524d\u56de\u7d39\u4ecb\u3057\u305fYeoman\u3092\u4f7f\u3063\u3066\u4f5c\u6210 generator-socketio\u3068\u3044\u3046\u30b8\u30a7\u30cd\u30ec\u30fc\u30bf\u304c\u3042\u308b\u3088\u3046\u306a\u306e\u3067\u30b3\u30ec\u3092\u4f7f\u3044 [&hellip;]<\/p>\n","protected":false},"author":16,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[120,36],"tags":[121,119],"class_list":["post-3533","post","type-post","status-publish","format-standard","hentry","category-node-js","category-web","tag-socket-io","tag-yeoman"],"_links":{"self":[{"href":"https:\/\/www.lancard.com\/blog\/wp-json\/wp\/v2\/posts\/3533","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lancard.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lancard.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lancard.com\/blog\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lancard.com\/blog\/wp-json\/wp\/v2\/comments?post=3533"}],"version-history":[{"count":5,"href":"https:\/\/www.lancard.com\/blog\/wp-json\/wp\/v2\/posts\/3533\/revisions"}],"predecessor-version":[{"id":3547,"href":"https:\/\/www.lancard.com\/blog\/wp-json\/wp\/v2\/posts\/3533\/revisions\/3547"}],"wp:attachment":[{"href":"https:\/\/www.lancard.com\/blog\/wp-json\/wp\/v2\/media?parent=3533"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lancard.com\/blog\/wp-json\/wp\/v2\/categories?post=3533"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lancard.com\/blog\/wp-json\/wp\/v2\/tags?post=3533"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}