我正在尝试在Visual Studio上构建自己的Angular 2/ASP.NET SPA.你可以在这里找到所有文件.
我试图做的很简单:在我按照说明在这里设置应用程序后,我开始添加我自己的文件,试图做一些基本的路由,我删除了一些多余的文件.我有ClientApp/app/app.module.ts bootstrapping ClientApp/app/components/app/app.component.ts,唯一的路由是ClientApp/app/components/app/test.component.ts
不幸的是,我收到了这个错误:
An unhandled exception occurred while processing the request.
Exception: Call to Node module failed with error: Error: No ResourceLoader implementation has been provided. Can't read the url "app.component.html"
at Object.get (C:\Users\Student\Source\Workspaces\mvs\Test2\Test2\node_modules\@angular\compiler\bundles\compiler.umd.js:17454:17)
at DirectiveNormalizer._fetch (C:\Users\Student\Source\Workspaces\mvs\Test2\Test2\node_modules\@angular\compiler\bundles\compiler.umd.js:13455:45)
at DirectiveNormalizer.normalizeTemplateAsync (C:\Users\Student\Source\Workspaces\mvs\Test2\Test2\node_modules\@angular\compiler\bundles\compiler.umd.js:13498:23)
at DirectiveNormalizer.normalizeDirective (C:\Users\Student\Source\Workspaces\mvs\Test2\Test2\node_modules\@angular\compiler\bundles\compiler.umd.js:13473:46)
at RuntimeCompiler._createCompiledTemplate (C:\Users\Student\Source\Workspaces\mvs\Test2\Test2\node_modules\@angular\compiler\bundles\compiler.umd.js:16869:210)
at C:\Users\Student\Source\Workspaces\mvs\Test2\Test2\node_modules\@angular\compiler\bundles\compiler.umd.js:16807:43
at Array.forEach (native)
at C:\Users\Student\Source\Workspaces\mvs\Test2\Test2\node_modules\@angular\compiler\bundles\compiler.umd.js:16805:50
at Array.forEach (native)
at RuntimeCompiler._compileComponents (C:\Users\Student\Source\Workspaces\mvs\Test2\Test2\node_modules\@angular\compiler\bundles\compiler.umd.js:16804:45)
Run Code Online (Sandbox Code Playgroud)
一切看起来都对我,但我是Angular 2和ASP.NET的新手,所以我不知道它是编译器问题还是人为错误.以下是一些代码,如果您需要更多信息,则回复此链接的链接位于此问题的顶部.
ClientApp /应用/ app.module.ts
import { NgModule } …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个JavaScript函数,它从外部JSON中的数组中获取信息,然后获取其中一个JSON变量的最大值(或前5个值).对于这个例子,假设我想获得值"ppg"的最大值.这是一个小数组样本:
[
{
"player" : "Andre Drummond",
"team" : "Detroit Pistons",
"ppg" : "15.4",
"rpg" : "11.6",
"apg" : "2.4",
"bpg" : "1.6",
"spg" : "0.8",
"3pg" : "0.1"
},
{
"player" : "Anthony Davis",
"team" : "New Orleans Pelicans",
"ppg" : "16.4",
"rpg" : "13.6",
"apg" : "2.6",
"bpg" : "3.5",
"spg" : "1.2",
"3pg" : "0.1"
},
{
"player" : "Carmelo Anthony",
"team" : "New York Knicks",
"ppg" : "27.4",
"rpg" : "5.4",
"apg" : "4.5",
"bpg" : …Run Code Online (Sandbox Code Playgroud) 我正在尝试学习Node.js并且我一直在使用Lynda.com,这本书是Node.js in Action,我在网上搜索试图寻找当前版本Express(Express~4.2)的在线教程Node.js的
我见过的几乎所有东西都有Express 3.4,这里有很多不推荐使用的代码.这些已经成为一种障碍,而不是一种帮助.
有没有人知道任何好的视频或有更新版本的Express的分步教程?谢谢.
编辑:以下Waldo的答案是完美的,任何有同样问题的人都应该使用Waldo给出的链接.
我已经找到了那些想要更多帮助学习Express 4.0或从Express 3.0导航到4.0的人的其他信息.
使用Node.js和Express创建服务器端MVC应用程序
使用Express 4创建RESTful API (谢谢Romo!)
Lynda.Com有一个更新的教程,但它们至少还有两个已弃用的代码.
我正在阅读使用Redis和Node.js构建可扩展应用程序,并且整个代码都不起作用或被弃用.我正在尝试使用提供给我的代码的cookie存储:
var io = require('socket.io'),
connect = require('connect'),
cookie = require('cookie'),
expressSession = require('express-session'),
ConnectRedis = require('connect-redis')(expressSession),
redis = require('redis'),
config = require('../config'),
redisAdapter = require('socket.io-redis'),
redisSession = new ConnectRedis({host: config.redisHost, port: config.redisPort});
var socketAuth = function socketAuth(socket, next){
var handshakeData = socket.request;
var parsedCookie = cookie.parse(handshakeData.headers.cookie);
console.log(parsedCookie);
var sid = connect.utils.parseSignedCookies(parsedCookie['connect.sid'], config.secret);
if (parsedCookie['connect.sid'] === sid)
return next(new Error('Not Authenticated'));
redisSession.get(sid, function(err, session){
if (session.isAuthenticated)
{
socket.user = session.user;
socket.sid = sid;
return next();
}
else
return …Run Code Online (Sandbox Code Playgroud) 我知道 Redis 键的命名约定(这是Redis Key 的命名约定和有效字符这里的一个很好的链接)但是值是什么?如果我的值包含诸如 &^*$@+{ 之类的字符,我会遇到问题吗?
登录后,我将JSON Web令牌发送到客户端.我有一个自定义authInterceptor,它将JSON Web令牌发送回服务器端.
当我登录时,一切正常.转到不同的子页面,效果很好.这是因为我有一个函数可以检查Passport身份验证或令牌身份验证,并在登录Passport身份验证时工作.
当我关闭浏览器并返回到站点时,JWT无法解码.当JWT放置在编码功能下时,它可以进行解码.我已经尝试了jwt-simple节点模块和jsonwebtoken节点模块,我回来时遇到了同样的错误.
这是我的自定义函数,它检查有效的令牌:
function checkAuthentication(req, res, next){
if (!req.headers.authorization) {
return res.status(401).send({ message: 'Please make sure your request has an Authorization header' });
}
console.log("Here");
var token = req.headers.authorization.split('.')[1];
console.log(token);
console.log(config.secret);
var payload = null;
try {
console.log("And here....");
payload = jwt.decode(token, config.secret);
console.log(payload);
}
catch (err) {
console.log(err);
return false;
}
if (payload.exp <= moment().unix()) {
return false;
}
req.user = payload.sub;
return true;
}
Run Code Online (Sandbox Code Playgroud)
jwt-simple使用jwt.encode()和jwt.decode,以及jsonwebtoken使用jwt.sign()和jwt.verify().这是我在我的控制台中得到的:
Here
eyJzdWIiOiI1NmEyZDk3MWQwZDg2OThhMTYwYTBkM2QiLCJleHAiOjE0NTYxOTEyNzQsImlhdCI6MTQ1NTMyNzI3NH0 …Run Code Online (Sandbox Code Playgroud) 我在做Sentdex的PyQt4的YouTube的教程在这里.我正在尝试跟随,但使用PyQt5.这是一个简单的网络抓取应用程序.我跟着Sentdex的教程,我来到这里:
现在我正在尝试用PyQt5编写相同的应用程序,这就是我所拥有的:
import os
import sys
from PyQt5.QtWidgets import QApplication
from PyQt5.QtCore import QUrl, QEventLoop
from PyQt5.QtWebEngineWidgets import QWebEnginePage
from bs4 import BeautifulSoup
import requests
class Client(QWebEnginePage):
def __init__(self, url):
self.app = QApplication(sys.argv)
QWebEnginePage.__init__(self)
self.loadFinished.connect(self._loadFinished)
self.load(QUrl(url))
self.app.exec_()
def _loadFinished(self):
self.app.quit()
url = 'https://pythonprogramming.net/parsememcparseface/'
client_response = Client(url)
#I think the issue is here at LINE 26
source = client_response.mainFrame().toHtml()
soup = BeautifulSoup(source, "html.parser")
js_test = soup.find('p', class_='jstest')
print(js_test.text)
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我收到消息:
Run Code Online (Sandbox Code Playgroud)source = client_response.mainFrame().toHtml() AttributeError: 'Client' object has no attribute 'mainFrame' …
我有一个 Node.js 应用程序,其中将作者撰写的帖子存储在 Redis 数据库中。该帖子被赋予一个唯一的 ID(变量 messageId),并给出两个值:消息和作者。代码的第一部分如下所示:
redisClient.hmset(messageId, "message", req.body.message, "author", req.body.author);
Run Code Online (Sandbox Code Playgroud)
到目前为止,一切都很好。我想要做的是能够检索特定键的值。我知道我可以使用 hgetall() 来获取 messageId 的所有键和值,并且我知道我可以使用 hkeys 来获取 messageId 的所有键。如果我知道会有一个名为“message”的键,我如何从 Redis 客户端的消息 A) 和通过 Node.js 的 B) 中检索值?
注意:我看过这个:Redis + Node.js - how do Iretrieve the values。它没有告诉我我需要什么。
我正在尝试向客户端发送Passport-Local登录请求以供Satellizer分析,我希望服务器端的请求发送授权令牌.不幸的是,没有钥匙authorization在request.headers:
{ host: 'localhost:3000',
connection: 'keep-alive',
'cache-control': 'max-age=0',
accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' }
Run Code Online (Sandbox Code Playgroud)
登录功能在这里重定向,这ensureAuthenticated()就是调用的地方.
app.get('/main', ensureAuthenticated, function(req, res, next){
res.render('main.ejs', { token: createSendToken(req.user, config.secret), id: req.user._id, username: req.user.username, authorization: req.user.authorization });
});
Run Code Online (Sandbox Code Playgroud)
ensureAuthenticated() 然后分析登录请求并确保令牌匹配:
function ensureAuthenticated(req, res, next) {
if (!req.headers.authorization) {
return res.status(401).send({ message: 'Please make sure your request has an Authorization header' });
}
var token = req.headers.authorization.split(' ')[1];
var payload = null;
try {
payload = jwt.decode(token, config.token_secret);
}
catch (err) {
return …Run Code Online (Sandbox Code Playgroud) 我正在从头开始创建一个JavaScript表.我正在尝试从数组中打印出一系列值 - 这些将是表头,但对于这个问题,我将它们作为段落.
应该有四个值,但最终会打印五个值.第一个值出现"未定义",但其他四个值按预期打印出来.这是代码:
<div id="test"></div>
<script>
var headArray = ["Artist", "Album", "Year", "Genre"];
var tableHead = function() {
var str;
for (var i = 0; i < headArray.length; i++) {
str == "";
str += '<p>';
str += headArray[i];
str += '</p>';
console.log(str);
}
return str;
}
var x = document.getElementById('test');
x.innerHTML = tableHead();
</script>
Run Code Online (Sandbox Code Playgroud)
运行HTML时,文档显示:undefined Artist Album Year Genre.
console.log显示:
"undefined<p>Artist</p>"
"undefined<p>Artist</p><p>Album</p>"
"undefined<p>Artist</p><p>Album</p><p>Year</p>"
"undefined<p>Artist</p><p>Album</p><p>Year</p><p>Genre</p>"
Run Code Online (Sandbox Code Playgroud)
如何防止和/或删除DOM中打印的未定义值?请记住,这只是一个大项目的第一部分(毕竟我正在构建一个表).
我正在尝试按照此应用程序松散地构建一个应用程序,但我收到了一个TypeScript错误,我想要解释什么是错误的.据我所知,我正在做我应该做的事情.
这是我到目前为止编写的代码:
import {Injectable,Inject} from '@angular/core';
import {Http,Headers,URLSearchParams, Response} from '@angular/http';
import {List, Record} from 'immutable';
import {Observable} from "rxjs/Observable";
const TodoRecord = Record({
id: 0,
description: "",
completed: false
});
export class Todo extends TodoRecord {
id:number;
description:string;
completed: boolean;
constructor(props: any) {
super(props);
}
}
@Injectable()
export class TodoBackendService {
constructor(private http: Http){
this.http = http;
}
getAllTodos(){
return this.http.get("/todo");
}
saveTodo(newTodo: Todo): Observable<List<Todo>> {
var headers = new Headers();
headers.append("Content-Type", "application/json; chartset=utf-8");
return …Run Code Online (Sandbox Code Playgroud) node.js ×5
express ×4
javascript ×4
redis ×3
angular ×2
angularjs ×1
arrays ×1
asp.net ×1
cookies ×1
html ×1
jquery ×1
json ×1
jwt ×1
passport.js ×1
pyqt ×1
pyqt4 ×1
pyqt5 ×1
python ×1
python-3.x ×1
rxjs ×1
satellizer ×1
typescript ×1